2015-04-01 111 views
0

我試圖從只通過兩個不同的表相關的表中獲取數據。例如,我有信息「dataA」,需要獲取信息「dataD」。查詢數據取決於來自其他表的數據

table data relationship

我怎樣寫一個查詢,顯示數據A和dataD,因爲它們涉及?我不想顯示dataD的所有實例,只是與dataB和dataA相關的實例。如果這不合理,我很抱歉。

+0

dataA和dataD是如何關聯的?有沒有關係,我可以看到你張貼的圖片 – Chandu 2015-04-01 20:23:10

+0

我可能沒有正確解釋這一點,對不起。相當新的數據庫。表1有dataA和dataB。表2具有dataC和與表1中相同的dataB。表3具有dataD和與表2中相同的dataC。 – Programmer 2015-04-01 20:26:19

+1

'dataA'和'dataB'在'Table1'中是否有單獨的列,還是代表單獨的行? – 2015-04-01 20:27:22

回答

2

您將使用JOIN來執行此操作。具體而言,在這種情況下,LEFT OUTER JOIN是您最好的選擇。喜歡的東西:

SELECT 
    Table1.dataA, 
    Table3.dataD 
FROM 
    Table1 
    LEFT OUTER JOIN Table2 ON Table1.dataB = Table2.dataB 
    LEFT OUTER JOIN Table3 ON Table2.dataC = Table3.dataC 
0

,前提是你的每個表名下把「數據」項表示表中的列的工作,這是相當簡單:

select dataA 
    , dataD 
from Table1 t1 
    join Table2 t2 
     on t1.dataB = t2.dataB 
    join Table3 t3 
     on T2.dataC = t3.dataC 

如果你需要的所有dataA不管是否有匹配的dataD(或其他介入列),您都會更改我在'join''left join'之間的地址。

而你的問題很有意義。 :)我只是從圖中不清楚你的想法。

相關問題