-1
嘗試進行從一個表中提取的查詢,條件是該表的項目上的唯一ID在其他表的相關ID列中找到。SQL Server - SELECT WHERE三個獨立表上的三列是相等的嗎?
下面是我在做什麼現在:
SELECT * FROM Table1
inner join Table2 ON Table1.ID = Table2.Table1ID
inner join Table3 ON Table1.ID = Table3.Table1ID
WHERE Table1.ID = Table2.Table1ID and Table1.ID = Table3.Table1ID
例如,假設你是一名醫生,表1是患者遇到的列表。表2是患者診斷的列表,表3是患者治療的列表。 Table1和Table2上的項目將始終具有Table1ID,但Table1上的項目可能並不總是在Table2或Table3上具有相應的項目。
一邊,有沒有辦法做一個三重平等?如...
WHERE Table1.ID = Table2.Table1ID = Table3.Table1ID
你只需要把條件三次。例如。 T1.id = t2.id和t1.id = t3.id和t2.id = t1.id.希望很明顯。 – MaxPD
您的加入完成了此操作。平等是傳遞性的。 'where'子句是不必要的。 –
專注於你的問題的這一部分「Table1上的_items可能並不總是在Table2或Table3_上有相應的項目」,如果你在表3中可能沒有匹配的數據,那麼答案是(可能)使用'LEFT OUTER JOIN '而不是'INNER JOIN'。 – Turophile