2009-05-04 76 views
0
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傳遞給我的學校名稱,我現在使用$ _GET獲取學院名稱,現在我需要查詢:
通過使用SCHOOL名稱,我需要獲取CCOLOR和CCNAME。內部加入問題

+0

是CCNAME和CColor一樣嗎? – 2009-05-04 05:42:38

回答

0

你有大學的名字,如果我理解正確,你想知道顏色名稱。

鏈接屬性是CColor。

你查詢應該是這樣一點點:每日

select 
    m.ccname, m.ccolor 
from 
    mats m 
inner join 
    college c 
on 
    c.ccolor = m.ccolor 
where 
    c.school = @myVariable 
0
SELECT college.CColor FROM college 
    INNER JOIN mats ON college.CColor = mats.CColor 
    AND mats.CColor = 'your query' 
1

你的問題不清楚,所以答案只能近似。 您需要兩個表中可用於連接它們的列,即具有可用於識別父表(學院)中的記錄與子表中的記錄匹配的值的列(墊)。理想情況下,您可以在子表格地圖中使用外鍵,該外鍵可以命名爲college_id(這使用引用父表的命名約定)。

給予像您的查詢上面提到的一個外鍵會變成

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

假設ccname是ccolor的名稱。

0

數據庫提示:使用外鍵約束,或者你將有數據損壞問題,以及人們對SO不會有任何想法你的專欄如何相互關聯。當你知道關係建模的原因和缺點時,你可能會發現有必要沒有它們(儘管除非你有很好的理由,否則不建議這樣做),但現在,用它們明確地定義表格彼此相關。

否則你的問題有點像問一個廚師,「我有一些沒有標籤的罐子食物,我認爲是牛至,我怎麼做兩頓浪漫的晚餐? (嗯..什麼是在罈子裏??)

外鍵doumentation: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