sql語句中怎么實現(xiàn)聯(lián)合查詢

sql語句中怎么實現(xiàn)聯(lián)合查詢,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

創(chuàng)新互聯(lián) - 四川電信科技城機房,四川服務器租用,成都服務器租用,四川網通托管,綿陽服務器托管,德陽服務器托管,遂寧服務器托管,綿陽服務器托管,四川云主機,成都云主機,西南云主機,四川電信科技城機房,西南服務器托管,四川/成都大帶寬,成都機柜租用,四川老牌IDC服務商

sql語句聯(lián)合查詢詳解  

2011-03-01 18:58:22|  分類: MySQL|字號 訂閱

例子:

person表和user表沒有約束

 

有以下幾種關聯(lián)

1.UNION

格式:
查詢語句


UNION [ALL] 查詢語句


[UNION [ALL] 查詢語句][…n]

說明:

ALL選項表示將所有行合并到結果集合中。不指定該項時,被聯(lián)合查詢結果集合中的重復行將只保留一行。


在包括多個查詢的UNION語句中,其執(zhí)行順序是自左至右,使用括號可以改變這一執(zhí)行順序。例如:


查詢1 UNION (查詢2 UNION 查詢3) 

執(zhí)行:select id,name from user UNION select id,name from person;

sql語句中怎么實現(xiàn)聯(lián)合查詢

注意:sql句子欄目數(shù)必須是相同的,字段可以隨意 2.JOIN

JOIN用于按照ON條件聯(lián)接兩個表,主要有四種:


(一)內連接


INNER JOIN:內部聯(lián)接兩個表中的記錄,僅當至少有一個同屬于兩表的行符合聯(lián)接條件時,內聯(lián)接才返回行。(表示交集)


(二)外連接


LEFT JOIN / LEFT OUTER JOIN:外部聯(lián)接兩個表中的記錄,并包含左表中的全部記錄。如果左表的某記錄在右表中沒有匹配記錄,則在相關聯(lián)的結果集中右表的所有選擇列表列均為空值。理解為即使不符合ON條件,左表中的記錄也全部顯示出來,且結果集中該類記錄的右表字段為空值。(差集)


RIGHT JOIN / RIGHT OUTER JOIN:外部聯(lián)接兩個表中的記錄,并包含右表中的全部記錄。簡單說就是和LEFT JOIN反過來。(差集)


FULL JOIN / FULL OUTER JOIN: 完整外部聯(lián)接返回左表和右表中的所有行。就是LEFT JOIN和RIGHT JOIN和合并,左右兩表的數(shù)據(jù)都全部顯示。(并集)


(三)交叉連接


交叉連接(cross join)不帶WHERE 子句,它返回被連接的兩個表所有數(shù)據(jù)行的笛卡爾積,返回到結果集合中的數(shù)據(jù)行數(shù)等于第一個表中符合查詢條件的數(shù)據(jù)行數(shù)乘以第二個表中符合查詢條件的數(shù)據(jù)行數(shù)。

JOIN的基本語法(注意結果對比):


1.執(zhí)行 select * from user as A join person as B on A.id=B.id;或

select * from user as A inner join person as B on A.id=B.id;


結果如下:
sql語句中怎么實現(xiàn)聯(lián)合查詢      2.執(zhí)行 select A.* from user as A join person as B on A.id=B.id;sql語句中怎么實現(xiàn)聯(lián)合查詢  3.執(zhí)行select * from user as A left join person as B on A.id=B.id;sql語句中怎么實現(xiàn)聯(lián)合查詢    4.select * from person as A right
join user 
as B on A.id=B.id; sql語句中怎么實現(xiàn)聯(lián)合查詢   5.full join  
mysql 5不支持full join 所以用左關聯(lián)和右關聯(lián)進行聯(lián)合

SELECT * FROM user

LEFT JOIN money ON user.id=money.id

UNION

SELECT * FROM user

RIGHT JOIN money ON user.id=money.id

6.執(zhí)行 select * from user CROSS JOIN person;
sql語句中怎么實現(xiàn)聯(lián)合查詢

 巧記select * from A left join  B where   條件   其一:  表以from最近表為準則(A表) 其二: join B要放在表A  left  (其中對面中的左右以自身的左右正好相反) 其三:from A表為準則時,Join表有多字段內容,少則為空值NULL  right join正好相反select * from A right join  B where   條件

關于sql語句中怎么實現(xiàn)聯(lián)合查詢問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關知識。

分享題目:sql語句中怎么實現(xiàn)聯(lián)合查詢
網頁地址:http://bm7419.com/article24/iidhje.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊App設計、App開發(fā)微信公眾號、自適應網站、網站排名

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都做網站