不帶ON 條件的MySQL JOIN 查詢
問題: MySQL JOIN 查詢可以在沒有ON 語句的情況下編寫嗎?它們與「左」和「右」有何不同JOIN?
答案:
是的,MySQL 允許在沒有 ON 條件的情況下編寫 JOIN 查詢。此行為背離 ANSI SQL 標準和大多數其他資料庫。但是,此類查詢相當於交叉聯接,它會建立笛卡爾積,而不是根據常見條件聯接行。
當 MySQL 中的 JOIN 或 INNER JOIN 缺少 ON 子句時,效果是交叉連結。同樣,ON 子句可以與 CROSS JOIN 一起使用,以進一步細化連接條件。
與 LEFT 和 RIGHT JOIN 的差異:
LEFT 和 RIGHT JOIN 需要ON 子句指定連接條件。這是因為它們的目的是包括左表或右表中的行,即使另一個表中沒有匹配的行。如果沒有 ON 子句,它們只會分別傳回左表和右表中的行。
實際注意事項:
雖然技術上可以使用 JOIN在 MySQL 中沒有 ON 條件的查詢,為了清晰起見,通常建議明確使用 CROSS JOIN。首選以下語法:
from A cross join B
超過:
from A, B
或:
from A join B -- with no on clause
以上是MySQL JOIN 查詢可以在沒有 ON 子句的情況下運作嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!