簡體   English   中英

為什么選擇多個表而不加入

[英]Why select from multiple tables without join

在連接表時,傳統上可以使用SQL89的加入方式

SELECT * FROM t1, t2 WHERE t1.id = t2.t1_id;

但是從SQL92標准開始,我們現在可以使用JOIN語法進行連接

SELECT * FROM t1 JOIN t2 on t1.id=t2.t1_id;

是否有人會在沒有加入的情況下從多個表中進行SELECT 現在,我知道人們使用UNION連接數據,但這不是我所說的。

我們之所以在FROM子句中使用逗號添加表格是為了向后兼容嗎? 或者是否存在任何使用舊語法的現實場景只能通過連接進行?

如果由於某種原因需要完整的笛卡爾產品,它可能會有用。 例如,如果您有汽車模型表和汽車顏色表,並且想要枚舉所有選項,則不需要連接。 話雖如此,我認為這是一個邊緣案例。

我承認肌肉記憶會開始,有時我會在思考之前使用89路。 但我更喜歡92方法,因為它使WHERE子句更清晰。 WHERE子句中唯一的條件是與您的業務案例相關的條件,而僅僅為了定義關系而存在的條件整齊地存在於JOIN子句中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM