我試圖從只通過兩個不同的表相關的表中獲取數據。例如,我有信息「dataA」,需要獲取信息「dataD」。查詢數據取決於來自其他表的數據
我怎樣寫一個查詢,顯示數據A和dataD,因爲它們涉及?我不想顯示dataD的所有實例,只是與dataB和dataA相關的實例。如果這不合理,我很抱歉。
我試圖從只通過兩個不同的表相關的表中獲取數據。例如,我有信息「dataA」,需要獲取信息「dataD」。查詢數據取決於來自其他表的數據
我怎樣寫一個查詢,顯示數據A和dataD,因爲它們涉及?我不想顯示dataD的所有實例,只是與dataB和dataA相關的實例。如果這不合理,我很抱歉。
您將使用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
,前提是你的每個表名下把「數據」項表示表中的列的工作,這是相當簡單:
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'
之間的地址。
而你的問題很有意義。 :)我只是從圖中不清楚你的想法。
dataA和dataD是如何關聯的?有沒有關係,我可以看到你張貼的圖片 – Chandu 2015-04-01 20:23:10
我可能沒有正確解釋這一點,對不起。相當新的數據庫。表1有dataA和dataB。表2具有dataC和與表1中相同的dataB。表3具有dataD和與表2中相同的dataC。 – Programmer 2015-04-01 20:26:19
'dataA'和'dataB'在'Table1'中是否有單獨的列,還是代表單獨的行? – 2015-04-01 20:27:22