MySQL中inner join 和 cross join 的區別?

時間 2021-05-31 18:53:24

1樓:

MySQL 5.7 文件中的表述

對於 MySQL, JOIN, CROSS JOIN, INNER JOIN 完全等價

2樓:one flower

在MySQL中,CROSS JOIN語法上等價於INNER JOIN (它們可以彼此代替。在標準SQL中,它們不等價。INNER JOIN結合ON子句使用;CROSS JOIN 用於其它地方)。

參考自:MySQL如何優化巢狀Join(一)

3樓:小蝶驚鴻

cross join 產生的是笛卡爾集,也就是 M*N 的集合,inner join 是內聯查詢,不是產生笛卡爾集。

當然 cross join 也可以這麼用:select a.xx,b.xx from a cross join b where a.id=b.id 之類的。

不過為何mysql這裡會出現這種情況,那就應該是mysql「獨有」的東西了,嗯!一定是這樣。。。!!

4樓:realzyy

cross join是笛卡爾積,理論上不應該支援on語法,但是MySQL在這方面做的比較奇怪。

總共有五種join:cross,outer full,outer left,outer right和inner。除了cross之外都支援on語法。

既然MySQL中InnoDB使用MVCC,為什麼REPEATABLE READ不能消除幻讀?

SHQHDMR mysql5.6官方文件原話,RR用next key locks防止幻讀 By default,InnoDBoperates inREPEATABLE READ transaction isolation level and with theinnodb locks unsafe f...

python從mysql中取到time型別欄位的值變成timedelta型別了,如何轉換為時間格式?

管理他爹 自問自答,上面回答的答案都是答非所問,最後還是在stackoverflow上找到了答案,正確解決方式如下 value datetime.timedelta 0,64800 datetime.datetime.min value time 青牛 來個例子 usr bin env python...

mysql中資料已經完成了binlog的寫入儲存引擎的提交,那麼資料算是已經落盤了嗎?

趙偉 不一定,要看你的 innodb flush log at trxcommit 和sync binlog 的設定。只有兩者都是1,乙個事務提交後才意味著其改動會持久化。有人為了效能把兩者都設定為0,那意味著一旦mysqld 程序不是正常退出,比如被kill掉,或者crash,即使作業系統保持正常...