sql用逗號連接多張表對應哪個join?

      網友投稿 1759 2022-05-30

      轉自:http://blog.csdn.net/huanghanqian/article/details/52847835

      四種join的區別已老生常談:

      INNER JOIN(也可簡寫為JOIN): 如果表中有至少一個匹配,則返回行

      LEFT JOIN: 即使右表中沒有匹配,也從左表返回所有的行

      RIGHT JOIN: 即使左表中沒有匹配,也從右表返回所有的行

      FULL JOIN: 只要其中一個表中存在匹配,就返回行

      那么問題來了,還有一種常見的寫法是將表用逗號隔開,那這個又是怎么連接的呢。

      先看這兩張表。

      使用逗號隔開的方法來連接表:

      sql用逗號連接多張表對應哪個join?

      SELECT * FROM employee,department WHERE employee.DepartmentID = department.DepartmentID

      輸出結果:

      可以很明顯發現:這不就是inner join嘛!

      沒錯,答案正是這樣:sql用逗號連接多張表對應的是 inner join。

      為了嚴謹性,我到處找sql的官方文檔來證實這一點。然而搜不出來sql的文檔(誰知道網址請務必發我),最后還是在維基百科上找到了可以當作論據的話。

      SQL 定義了兩種不同語法方式去表示"連接"。首先是"顯式連接符號",它顯式地使用關鍵字 JOIN,其次是"隱式連接符號",它使用所謂的"隱式連接符號"。隱式連接符號把需要連接的表放到 SELECT 語句的 FROM 部分,并用逗號隔開。這樣就構成了一個"交叉連接",WHERE 語句可能放置一些過濾謂詞(過濾條件)。那些過濾謂詞在功能上等價于顯式連接符號. SQL 89標準只支持內部連接與交叉連接,因此只有隱式連接這種表達方式;SQL 92標準增加了對外部連接的支持,這才有了JOIN表達式。

      也就是說,

      SELECT * FROM employee INNER JOIN department ON employee.DepartmentID = department.DepartmentID

      等價于:

      SELECT * FROM employee,department WHERE employee.DepartmentID = department.DepartmentID

      至于哪個效率高一點,其實兩者是一回事,沒有區別。只是內連接是由SQL 1999規則定的書寫方式而已。

      另外,在寫sql語句測試4種join的時候,發現mysql對于full join返回的結果和inner join一模一樣。經查閱資料,才發現原來mysql不支持full join啊。

      見:http://stackoverflow.com/questions/4796872/full-outer-join-in-mysql

      參考資料:

      1.維基百科?https://zh.wikipedia.org/wiki/%E8%BF%9E%E6%8E%A5_(SQL)

      2.w3school?http://www.w3school.com.cn/sql/sql_join.asp

      3.CSDN博客最后一段話?http://www.cnblogs.com/huangfr/archive/2012/06/20/2555530.html

      SQL

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:云脈表單識別工具 智能處理紙質表單文件
      下一篇:OAuth 2.0 協議原理詳解
      相關文章
      亚洲av无码无在线观看红杏| 亚洲AV色香蕉一区二区| 亚洲最大免费视频网| 亚洲爱情岛论坛永久| 亚洲va中文字幕无码久久| 亚洲色爱图小说专区| 亚洲午夜久久久久久久久电影网| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 国产亚洲精品看片在线观看| 日韩精品亚洲专区在线观看| 在线91精品亚洲网站精品成人| 亚洲国产成人手机在线观看| 亚洲国产综合AV在线观看| 亚洲AV无码男人的天堂| 看亚洲a级一级毛片| 五月婷婷亚洲综合| 亚洲最大av无码网址| 在线观看亚洲成人| 久久亚洲国产欧洲精品一| 亚洲AV无码久久精品成人| 亚洲国产香蕉碰碰人人| 久久亚洲精品成人AV| 亚洲国产综合精品| 国产91在线|亚洲| 亚洲欧美国产精品专区久久| 亚洲丶国产丶欧美一区二区三区| 亚洲av日韩专区在线观看| 噜噜噜亚洲色成人网站| 精品亚洲成α人无码成α在线观看| 自拍偷自拍亚洲精品第1页| 亚洲AV无码乱码在线观看富二代| 久久亚洲精品无码AV红樱桃| 亚洲乱码一二三四区麻豆| 亚洲日韩国产二区无码| 亚洲成a人无码av波多野按摩| 久久精品夜色噜噜亚洲A∨| 情人伊人久久综合亚洲| 亚洲视频在线不卡| 国产成人精品日本亚洲专一区| 亚洲A∨精品一区二区三区下载| 亚洲欧洲中文日韩久久AV乱码|