0
我有多個具有相同主鍵字段但沒有其他相同字段的表。我要選擇像這樣從所有的表匹配到一個特定的主鍵列的集合,東西:(!感謝@Abelisto)從多個表中選擇列
SELECT T1.a, T2.b, ..., TN.z FROM T1, T2, ..., TN WHERE T1.pk = "abc"
我有多個具有相同主鍵字段但沒有其他相同字段的表。我要選擇像這樣從所有的表匹配到一個特定的主鍵列的集合,東西:(!感謝@Abelisto)從多個表中選擇列
SELECT T1.a, T2.b, ..., TN.z FROM T1, T2, ..., TN WHERE T1.pk = "abc"
SELECT T1.a, T1.b, ..., TN.z
FROM T1 INNER JOIN T2 ON T1.pk = T2.pk
INNER JOIN T3 on T1.pk = T3.pk
...
INNER JOIN TN on T1.pk = TN.pk
AND TN.pk = "abc"
或者在較短的形式。
SELECT T1.a, T1.b, ..., TN.z
FROM T1 JOIN T2 using(pk)
JOIN T3 using(pk)
...
JOIN TN using(pk)
WHERE TN.pk = "abc"
有幾件事情可以縮短查詢時間:在Postgres中,默認情況下聯接是內聯的,所以'INNER JOIN'等於'JOIN';如果列具有相同的名稱,那麼可以使用(pk)'而不是't1.pk = t2.pk'上的t1 join t2'來寫入t1連接t2。 – Abelisto
您是否嘗試過使用'join'? 'select ... from t1 join t2 on t1.id = t2.id ...'? – sgeddes