Foreign-Key
在不使用連接的情況下引用另一個表中的數據
大家好,所以我有一個家庭作業,我很難理解。我遇到的問題是:
九。參考 ER 上的 customers 和 shipping_details 表,顯示 customers 表中的所有數據,但僅在 shipping_details 表上的省等於 NS 的地方顯示。不要為此要求使用聯接。
因此,我可以使用連接輕鬆完成問題,但我很難理解如何在不使用連接的情況下引用另一個表。我正在嘗試使用向量聚合函式,但我不清楚如何在不使用連接的情況下引用該表的列中的表和值
由於您不需要從 shipping_details 表中返回任何數據,因此可以使用**semi-join**,它可以使用
IN
和子查詢或EXISTS
相關子查詢來編寫。例子:
-- Using IN -- select c.* from customers as c where c.shipping_detail_id IN ( select sd.shipping_detail_id from shipping_details as sd where sd.province = 'NS' ) ; -- Using EXISTS -- select c.* from customers as c where EXISTS ( select 1 from shipping_details as sd where sd.province = 'NS' and sd.shipping_detail_id = c.shipping_detail_id -- correlation ) ;