国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

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

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

相關文章:
主站蜘蛛池模板: 超清首页 国产 亚洲 丝袜 | 欧美人在线一区二区三区 | 国产成人一区二区三区影院免费 | 九一精品国产 | 国产成人www免费人成看片 | 日本精品中文字幕有码 | 国产亚洲欧美另类久久久 | 成人毛片免费播放 | 在线亚洲v日韩v | 夜色邦合成福利网站 | 91香蕉国产线在线观看免费 | 手机在线观看a | 在线成人免费观看国产精品 | 97在线观看完整免费 | 中文字幕一区二区三区亚洲精品 | 一级毛片免费观看 | 美女曰皮| 成人爱爱网站在线观看 | 一级毛片在线不卡直接观看 | 欧美freesex10一13黑人 | 男女猛烈无遮掩免费视频 | 国产成人久久精品一区二区三区 | a级成人毛片久久 | 天天爽夜夜操 | 色www永久免费 | 欧美xxxxx九色视频免费观看 | 精品国产综合成人亚洲区 | 日本a级毛片免费视频播放 日本a级三级三级三级久久 | 特毛片| 男人的天堂久久香蕉国产 | 黄 色 三 片 | 三级视频在线播放线观看 | 亚洲第一页在线播放 | 欧洲色老头 | 国产亚洲一区二区精品 | 日本欧美一区二区三区片 | 久草福利资源网站免费 | 免费看欧美一级特黄a大片一 | 波多野结衣视频免费 | 欧美成人免费高清二区三区 | 91精品久久一区二区三区 |