亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在MySQL查詢中,為什么使用聯接而不是在哪里?

在MySQL查詢中,為什么使用聯接而不是在哪里?

繁星coding 2019-07-27 15:15:54
在MySQL查詢中,為什么使用聯接而不是在哪里?似乎要組合兩個或多個表,我們可以使用聯接或位置。兩者的優勢是什么?
查看完整描述

3 回答

?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

以下是使用WHERE語法(其他明智的方法稱為隱式聯接)的問題:

首先,很容易獲得偶然的交叉連接,因為聯接條件不在表名旁邊。如果將6個表連接在一起,則很容易忽略WHERE子句中的一個表。通過使用DISTINCT關鍵字,您將經常看到這個問題。這對數據庫來說是一個巨大的性能打擊。使用顯式聯接語法不能意外地獲得交叉連接,因為它將不通過語法檢查。

在某些數據庫中,在舊的語法中,向右和向左聯接是有問題的(在SQL Server中,不能保證得到正確的結果)。此外,我所知道的SQL Server中也不推薦它們。

如果您打算使用交叉聯接,則舊語法不清楚這一點。顯然,使用目前的ANSII標準。

對于維護者來說,更難看出哪些字段是聯接的一部分,甚至是哪些表使用隱式語法以何種順序連接在一起。這意味著修改查詢可能需要更多時間。我認識的人很少,一旦他們花時間對顯式聯接語法感到舒服,就會回到原來的方式。

我還注意到,一些使用這些隱式聯接的人實際上并不了解聯接是如何工作的,因此在他們的查詢中得到了不正確的結果。

老實說,你是否會使用18年前被一種更好的方法取代的其他類型的代碼呢?




查看完整回答
反對 回復 2019-07-28
?
手掌心

TA貢獻1942條經驗 獲得超3個贊

大多數人傾向于更清楚地發現連接語法是與什么連接的。此外,它的好處是成為一個標準。

就我個人而言,我是在哪里“長大”的,但是我越多地使用連接語法,我就越開始了解它是如何變得更加清晰。



查看完整回答
反對 回復 2019-07-28
  • 3 回答
  • 0 關注
  • 344 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號