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)  
);

MYSQL 好的,这就是问题,我认为这很简单,但我说得不对。我有通过URL传递给我的SCHOOL名称,我使用$ _GET来获取大学名称,现在我需要查询:
通过使用SCHOOL名称,我需要获得CCOLOR和CCNAME。

有帮助吗?

解决方案

如果我理解正确的话,你有大学名称,你想找出颜色名称。

链接属性是CColor。

您的查询应该看起来像这样:

select
    m.ccname, m.ccolor
from
    mats m
inner join
    college c
on
    c.ccolor = m.ccolor
where
    c.school = @myVariable

其他提示

您的问题不清楚,所以答案只能近似。 您需要两个表中可用于连接它们的列,即具有可用于标识父表(学院)中的记录与子表(垫)中的记录匹配的值的列。理想情况下,子表映射中有一个外键,可以命名为college_id(这使用引用父表的命名约定)。

像上面提到的那样给出你的查询的外键将成为

select
  college.ccolor
from
  college inner join mats
    on college.id = mats.college_id
where
  mats.ccname = "<<COLOUR_DESIRED>>";

假设ccname是ccolor的名称。

数据库提示:使用外键约束,否则您将遇到数据损坏问题,SO上的人员将不知道您的列如何相互关联。

当你知道关系建模的原因和内容时,你可能会发现没有它们是必要的(尽管除非你有一个很好的理由,否则不推荐它),但是现在,用它们来明确定义表的方式相互关联。

否则你的问题就像问厨师一样,“我有一些未贴标签的罐装食品和我认为的牛至。我如何为两个人做一顿浪漫晚餐?“ (嗯..罐子里有什么?)

外键添加: http:/ /dev.mysql.com/doc/refman/5.1/en/ansi-diff-foreign-keys.html

加入文档: http://dev.mysql.com/ DOC / refman / 5.1 / EN / join.html

SELECT college.CColor FROM college
    INNER JOIN mats ON college.CColor = mats.CColor 
    AND mats.CColor = 'your query'
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top