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。
答案 0 :(得分:1)
您的问题不清楚,所以答案只能近似。 您需要两个表中可用于连接它们的列,即具有可用于标识父表(学院)中的记录与子表(垫)中的记录匹配的值的列。理想情况下,子表映射中有一个外键,可以命名为college_id(这使用引用父表的命名约定)。
像上面提到的那样给出你的查询的外键将成为
select
college.ccolor
from
college inner join mats
on college.id = mats.college_id
where
mats.ccname = "<<COLOUR_DESIRED>>";
假设ccname是ccolor的名称。
答案 1 :(得分:0)
SELECT college.CColor FROM college
INNER JOIN mats ON college.CColor = mats.CColor
AND mats.CColor = 'your query'
答案 2 :(得分:0)
如果我理解正确的话,你有大学名称,你想找出颜色名称。
链接属性是CColor。
您的查询应该看起来像这样:
select
m.ccname, m.ccolor
from
mats m
inner join
college c
on
c.ccolor = m.ccolor
where
c.school = @myVariable
答案 3 :(得分:0)
数据库提示:使用外键约束,否则您将遇到数据损坏问题,SO上的人员将不知道您的列如何相互关联。
当你知道关系建模的原因和内容时,你可能会发现没有它们是必要的(尽管除非你有一个很好的理由,否则不推荐它),但是现在,用它们来明确定义表的方式相互关联。
否则你的问题有点像问厨师,“我有一些未贴标签的罐装食品和我认为的牛至。我怎么为两个人做一顿浪漫晚餐?” (嗯..罐子里有什么?)
外键加密:http://dev.mysql.com/doc/refman/5.1/en/ansi-diff-foreign-keys.html