亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

mysql - SQL 這個 left jion 和 left outer jion 怎么結果是一樣的?

瀏覽:82日期:2022-06-21 18:37:41

問題描述

SELECT b.id,b.cid,b.name,t.type FROM shbooks b LEFT JOIN shtype t ON t.id = b.cid;SELECT b.id,b.cid,b.name,t.type FROM shbooks b LEFT OUTER JOIN shtype t ON t.id = b.cid;

不加OUTER的時候,我完全能理解,把表1在表2對應的類名顯示出來,

但是加上 OUTER后,我看到結果還是一模一樣,用什么例子可以理解加和不加的區別呢?

問題解答

回答1:

LEFT JOIN和LEFT OUTER JOIN是一樣的,只是通常我們寫SQL語句的是時候把OUTER給省略了。這個可以理解像內連接,我們寫內連接的時候,通常也是省略INNER,直接寫JOIN

多表鏈接有

內連接(JOIN 或 INNER JOIN)

SELECT * FROM a [INNER] JOIN b ON a.id=b.id

外連接

左連接或者叫左外向連接(LEFT JOIN 或者 LEFT OUTER JOIN)

SELECT * FROM a LEFT [OUTER] JOIN b ON a.id=b.id

右連接或者叫右外向連接(RIGHT JOIN 或者 RIGHT OUTER JOIN)

SELECT * FROM a RIGHT [OUTER] JOIN b ON a.id=b.id

完全外連接,就是通過關鍵UNION把左連接和右連接兩個語句連在一起

SELECT * FROM a LEFT [OUTER] JOIN b ON a.id=b.idUNIONSELECT * FROM a RIGHT [OUTER] JOIN b ON a.id=b.id

交叉連接(CROSS JOIN),這個會涉及到笛卡爾積,笛卡爾積我個人理解就是兩個表交叉組合。所以得到的集合結果就是查詢到的A表符合條件的記錄*B表符合條件的記錄.

這個有個小坑,就是不能像內連接和外連接一樣,給語句加上ON,如果加了,查詢結果就像內連接一樣

SELECT * FROM a CROSS JOIN b where a.id=1回答2:

這兩個應該就是一樣的吧。left join是left outer join的簡寫。你可以用explain extended和show warnings看到數據庫優化改寫之后的語句,兩個SQL是一樣的。

相關文章:
主站蜘蛛池模板: 亚洲欧美一区二区三区在线播放 | 国产a不卡片精品免费观看 国产a毛片高清视 | 91精品国产欧美一区二区 | 久久综合久久美利坚合众国 | 国产99视频精品免费视频7 | 精品国产网 | 樱花草在线社区www韩国 | 一级片免费观看视频 | 久久久99精品免费观看精品 | 久久久久一级片 | 亚洲一级在线观看 | 91在线视屏| 免费国产成人高清在线观看不卡 | 麻豆视频在线观看免费网站 | 日韩欧美在线观看综合网另类 | 国产高清免费在线观看 | 麻豆igao在线视频 | 日韩免费毛片视频 | 国产一区二区三区四区在线观看 | 求黄色网 | 亚洲精品高清国产一线久久97 | 国产成人啪精品午夜在线观看 | 日本香蕉一区二区在线观看 | a级毛片免费观看在线播放 a级毛片免费观看网站 | 成年人激情网 | 丁香六月欧美 | 国产精品一区欧美日韩制服 | 亚洲视频国产视频 | 婷婷中文在线 | 国产精品久久福利网站 | 美日韩一级 | 综合色图片 | 永久免费看黄在线播放 | 国产片黄色| 久久羞羞 | 亚洲欧美视频一区 | 国产日韩精品欧美一区视频 | a级毛片毛片免费很很综合 a级毛片在线观看 | 国产亚洲女在线精品 | 99爱在线精品视频免费观看9 | 99热只有精品一区二区 |