程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 深刻sql多表差別化結合查詢的成績詳解

深刻sql多表差別化結合查詢的成績詳解

編輯:MySQL綜合教程

深刻sql多表差別化結合查詢的成績詳解。本站提示廣大學習愛好者:(深刻sql多表差別化結合查詢的成績詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是深刻sql多表差別化結合查詢的成績詳解正文


本章簡單講述自己在實例開辟中碰到的多表查詢的成績
個中重要講述
select A.*,B.*,C.* from A,B,C

select A.*,B.*,C.* from 表A inner join 表B on A.id=B.id inner join 表C on A.code=C.code
的差別

比來碰到一個如許的項目需求——請求頁面聚集顯示三個聯系關系表的信息。
因為現實項目裡湧現的字段比擬多,如今簡化解釋以下:
table A 含有字段 UserName,CardCode,ItamCode
table B 含有字段 CardCode,CardName
table C 含有字段 ItamCode,ItamName

個中界面要在一個數據集裡同時湧現UserName,CardName,ItamName
話說固然學過SQL 內聯,外聯的成績,然則之前的項目根本湧現的都是兩個表的聯系關系完成,如今是第一次用到跨越兩個表的聯系關系完成成績。在百度找了一下材料,才發明本來根本道理是一樣的。哈,自己客歲才入職,經歷缺乏,年夜神們,請別見笑哈!
呃,假如讀者臨時還不熟習SQL根本內聯,外聯的相干常識,請自發找度娘面壁去哈,筆者在這裡不熬述了。長話短說,如今進入正題……

發明要完成下面的功效有兩種辦法,分離是
select A.UserName,B.CardName,C.ItamName from A,B,C

select A.UserName,B.CardName,C.ItamName from 表A inner join 表B on A.CardCode=B.CardCode inner join 表C on A.ItamCode=C.ItamCode
(假如字段是差別化的話,可以略寫表名)

就下面的語法來講,其實兩種完成辦法的後果是一樣的,但假如真要叫真細說好壞的話,照樣第二種完成辦法比擬適用的。
用inner join(全外聯)的寫法, 不只可以依照現實需求自在轉化left join(左外聯)和right join(右外聯),並且注清楚明了聯合的次序, 特殊是支撐了SQL文優化的便利。

還有一個就是說當我某個字段可認為null的時刻,第一種查詢辦法得出的值實際上是不完整的。好比說我下面的例子中當table C 的ItanName 並不是必填的時刻,只能經由過程左外銜接(left join)來完成我們須要的後果。
有興致的同窗可以本身操作一下,驗證下兩種辦法的分歧。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved