Mysql 内部连接问题

Mysql 内部连接问题,mysql,join,Mysql,Join,MYSQL 好的,问题是,我认为这很简单,但我没有弄对。我已通过URL将学校名称传递给我,现在我需要查询: 通过使用学校名称,我需要获得CCOLOR和CCNAME 您的问题不清楚,因此答案只能是近似的。 CREATE TABLE college ( id SERIAL PRIMARY KEY, SCHOOL VARCHAR(100), CColor VARCHAR(100), CCmascot VARCHAR(100) ); CREATE T

MYSQL 好的,问题是,我认为这很简单,但我没有弄对。我已通过URL将学校名称传递给我,现在我需要查询:

通过使用学校名称,我需要获得CCOLOR和CCNAME

您的问题不清楚,因此答案只能是近似的。
CREATE TABLE college 
(  
  id       SERIAL PRIMARY KEY, 
  SCHOOL   VARCHAR(100),
  CColor   VARCHAR(100),  
  CCmascot VARCHAR(100)  
);

CREATE TABLE mats 
(  
  id                SERIAL PRIMARY KEY,  
  CColor            VARCHAR(100),  
  CCNAME            VARCHAR(100)  
);
两个表中都需要可以用于联接它们的列,即具有值的列,这些值可用于标识父表(学院)中的记录何时与子表(mats)中的记录匹配。理想情况下,子表映射中应该有一个外键,可以命名为college_id(这使用引用父表的命名约定)

给出一个像上面提到的那样的外键,您的查询将变成

SELECT college.CColor FROM college
    INNER JOIN mats ON college.CColor = mats.CColor 
    AND mats.CColor = 'your query'
选择
学院颜色
从…起
大学内部连接垫
on college.id=mats.college\u id
哪里
mats.ccname=“”;

假设ccname是ccolor的名称。

如果我理解正确,您有学院名称,您希望了解颜色名称

链接属性为CColor

您的查询应该有点像这样:

select
  college.ccolor
from
  college inner join mats
    on college.id = mats.college_id
where
  mats.ccname = "<<COLOUR_DESIRED>>";
一天中的数据库提示:使用外键约束,否则会出现数据损坏问题,这样人们就不知道列之间的关系

当您知道关系建模的原因和原因后,您可能会发现有必要不使用它们(尽管除非您有很好的理由,否则不建议这样做),但现在,使用它们来明确定义表之间的关系

否则你的问题就有点像问厨师,“我有一些没有标签的罐装食物,我认为是牛至。我怎么做两个人的浪漫晚餐?”(嗯……罐装的是什么?)

外键加密:


加入文档:

CCNAME和CCColor是否相同?
select
    m.ccname, m.ccolor
from
    mats m
inner join
    college c
on
    c.ccolor = m.ccolor
where
    c.school = @myVariable