av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

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

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

瀏覽:142日期: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是一樣的。

相關文章:
主站蜘蛛池模板: 日韩三级在线播放 | 美日韩一区 | 亚洲欧美日韩国产精品 | 天天搞天天搞 | 韩日欧美 | 欧美视频一区 | 啪啪高潮动态图 | 久久性生活视频 | 狠狠干综合网 | 亚洲啊v| 成人a在线 | 精品国产va久久久久久久 | 国产精品毛片久久久久久久 | 欧美日韩一区二区在线 | 久久免费观看视频 | 免费在线小视频 | 亚洲精品社区 | 日本免费视频 | 免费毛片在线播放免费 | 午夜一级视频 | 台湾av在线 | 91激情视频| av黄色在线 | 久久久久网站 | 一区在线观看 | 国产不卡视频 | 少妇性bbb搡bbb爽爽爽欧美 | 成人免费毛片片v | 久久综合伊人 | 免费网站观看www在线观 | 国产专区在线播放 | 中文字幕一区二 | 日本一区二区不卡视频 | 伊人999 | 三年中文在线观看免费大全中国 | 国产免费福利 | 国产伦精品一区二区三区在线 | av免费观看在线 | 精品粉嫩小bbwbbwbbw | 精品国产91乱码一区二区三区 | 秋霞午夜鲁丝一区二区老狼 |