2014-05-01 138 views
0

提取數據因此,從我原來的問題有幫助的反饋後,我現在有這個疑問:需要MySQL查詢從兩個表中

SELECT sessions.id, sessions.title, sessions.abstract, sessions.presenters, sessions.proposal_id, proposals.outcomes, proposals.CategorySelection, proposals.research3, proposals.research4, proposals.research5, proposals.research6, proposals.innovation3, proposals.innovation4, proposals.innovation5,proposals.innovation6, proposals.application3, proposals.application4, proposals.application5, proposals.application6, proposals.integration3, proposals.integration4, proposals.integration5, proposals.integration6, proposals.references, proposals.organization 
    FROM sessions, proposals 
    INNER JOIN proposals ON proposals.id = sessions.proposal_id 
    WHERE sessions.id = '$id 
    LIMIT 1;) 

是讓我無處可去快。我究竟做錯了什麼?


原題: 我需要從一個表拉幾個字段,並從第二個表幾聲。條件是名爲proposal_id的字段與第二個表的id字段匹配。我相當新,所以這是我迄今爲止。它不工作,但不知道如何使其工作。

(SELECT `title`,`abstract`,`presenters`,`proposal_id` FROM `sessions` WHERE `id`='$id') 
    UNION 
    (SELECT `outcomes`,`CategorySelection`,`research3`,`research4`,`research5`,`research6`,`innovation3`,`innovation4`,`innovation5`, 
     `innovation6`,`application3`,`application4`,`application5`,`application6`,`integration3`,`integration4`,`integration5`,`integration6`,`references`,`organization` FROM `proposals` WHERE `id`= `sessions`.`proposal_id`) 
     LIMIT 1; 
+0

http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/ – Mihai

+0

我希望我能給你們兩個答案。非常感謝!那正是我需要的! –

+0

問題原來是別的,所以標記這個答案。 –

回答

1

您需要使用JOINUNION

select 
s.*,p.* 
from `sessions` s 
inner join `proposals` p on p.id = s.proposal_id 
where s.id = '$id' 

這是如何加入使用兩者之間的公共密鑰表。

您可以選擇特定的區域,而不是*通過指定列名

s.col1,s.col2,p.col1,p.col2 

1

嘗試使用連接,在那裏你可以匹配的兩個表的相關領域,這是從多個表

提取記錄最便捷的方式

UNION被用於當你想兩個查詢

select a.id,b.some_field from table1 as a 
INNER JOIN table2 as b ON b.prospal_id = a.id 
結合