日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sql的内连接、左连接、右连接

發布時間:2023/12/31 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql的内连接、左连接、右连接 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?多表聯查時,有些數據沒有對應另一個表的數據,即對應為空。

內連接:僅選出兩張表中互相匹配的記錄,有對應為空的則篩選出去,這些數據就不會被搜索出來。內連接是兩個表中都必須有連接字段的對應值的記錄,數據才能檢索出來。

語法:select 字段 from 表1 inner join 表2?on 條件;

select * from 表1,表2where?條件? ? from后面直接寫兩個表名,這樣寫等價于內連接 如果不寫?where?條件,相當于笛卡爾積,即輸出表1所有數據對應表2所有數據的結果。

外連接:包括左連接、右連接等。

? ? ? ? 左連接:會保留一部分對應為空的數據,語法為select 字段 from 表1 left join 表2?on 條件,只返回左表(即表1)中不符合連接條件單符合查詢條件的數據行,即所有表1的數據。

? ? ? ? 右連接:和左連接相反,會保留一部分對應為空的數據,語法為select 字段 from 表1 right join 表2?on 條件,只返回右表(即表2)中不符合連接條件單符合查詢條件的數據行,即所有表2的數據。

WHERE條件放在ON后面查詢的結果是不一樣的。

ON條件:是過濾兩個鏈接表笛卡爾積形成中間表的約束條件。
WHERE條件:在有ON條件的SELECT語句中是過濾中間表的約束條件。在沒有ON的單表查詢中,是限制物理表或者中間查詢結果返回記錄的約束。在兩表或多表連接中是限制連接形成最終中間表的返回結果的約束。
從這里可以看出,將WHERE條件移入ON后面是不恰當的。推薦的做法是:
ON只進行連接操作,WHERE只過濾中間表的記錄。

此段轉自:深入理解SQL的四種連接-左外連接、右外連接、內連接、全連接 - New.Young - 博客園

eg:

學生表

班級表

?學生表的classid和班級表的id對應,關系為多對一??

內連接:

select * from student inner join classes on student.classid=classes.id

結果:

左連接(推薦):?

select * from student left join classes on student.classid=classes.id

結果:

可見,左表的數據是全的?

右連接:

select * from student right join classes on student.classid=classes.id

結果:

可見右表的數據是全的

總結

以上是生活随笔為你收集整理的sql的内连接、左连接、右连接的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。