sql語(yǔ)句中怎么實(shí)現(xiàn)聯(lián)合查詢,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
創(chuàng)新互聯(lián) - 四川電信科技城機(jī)房,四川服務(wù)器租用,成都服務(wù)器租用,四川網(wǎng)通托管,綿陽(yáng)服務(wù)器托管,德陽(yáng)服務(wù)器托管,遂寧服務(wù)器托管,綿陽(yáng)服務(wù)器托管,四川云主機(jī),成都云主機(jī),西南云主機(jī),四川電信科技城機(jī)房,西南服務(wù)器托管,四川/成都大帶寬,成都機(jī)柜租用,四川老牌IDC服務(wù)商
2011-03-01 18:58:22| 分類: MySQL|字號(hào) 訂閱
例子:
person表和user表沒(méi)有約束
有以下幾種關(guān)聯(lián)
1.UNION
格式:
查詢語(yǔ)句
UNION [ALL] 查詢語(yǔ)句
[UNION [ALL] 查詢語(yǔ)句][…n]
說(shuō)明:
ALL選項(xiàng)表示將所有行合并到結(jié)果集合中。不指定該項(xiàng)時(shí),被聯(lián)合查詢結(jié)果集合中的重復(fù)行將只保留一行。
在包括多個(gè)查詢的UNION語(yǔ)句中,其執(zhí)行順序是自左至右,使用括號(hào)可以改變這一執(zhí)行順序。例如:
查詢1 UNION (查詢2 UNION 查詢3)
執(zhí)行:select id,name from user UNION select id,name from person;
注意:sql句子欄目數(shù)必須是相同的,字段可以隨意 2.JOIN
JOIN用于按照ON條件聯(lián)接兩個(gè)表,主要有四種:
(一)內(nèi)連接
INNER JOIN:內(nèi)部聯(lián)接兩個(gè)表中的記錄,僅當(dāng)至少有一個(gè)同屬于兩表的行符合聯(lián)接條件時(shí),內(nèi)聯(lián)接才返回行。(表示交集)
(二)外連接
LEFT JOIN / LEFT OUTER JOIN:外部聯(lián)接兩個(gè)表中的記錄,并包含左表中的全部記錄。如果左表的某記錄在右表中沒(méi)有匹配記錄,則在相關(guān)聯(lián)的結(jié)果集中右表的所有選擇列表列均為空值。理解為即使不符合ON條件,左表中的記錄也全部顯示出來(lái),且結(jié)果集中該類記錄的右表字段為空值。(差集)
RIGHT JOIN / RIGHT OUTER JOIN:外部聯(lián)接兩個(gè)表中的記錄,并包含右表中的全部記錄。簡(jiǎn)單說(shuō)就是和LEFT JOIN反過(guò)來(lái)。(差集)
FULL JOIN / FULL OUTER JOIN: 完整外部聯(lián)接返回左表和右表中的所有行。就是LEFT JOIN和RIGHT JOIN和合并,左右兩表的數(shù)據(jù)都全部顯示。(并集)
(三)交叉連接
交叉連接(cross join)不帶WHERE 子句,它返回被連接的兩個(gè)表所有數(shù)據(jù)行的笛卡爾積,返回到結(jié)果集合中的數(shù)據(jù)行數(shù)等于第一個(gè)表中符合查詢條件的數(shù)據(jù)行數(shù)乘以第二個(gè)表中符合查詢條件的數(shù)據(jù)行數(shù)。
JOIN的基本語(yǔ)法(注意結(jié)果對(duì)比):
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;
結(jié)果如下:
2.執(zhí)行 select A.* from user as A join person as B on A.id=B.id;
3.執(zhí)行select * from user as A left join person as B on A.id=B.id;
4.select * from person as A right
join user as B on A.id=B.id;
5.full join
mysql 5不支持full join 所以用左關(guān)聯(lián)和右關(guān)聯(lián)進(jì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;
巧記select * from A left join B where 條件 其一: 表以from最近表為準(zhǔn)則(A表) 其二: join B要放在表A left (其中對(duì)面中的左右以自身的左右正好相反) 其三:from A表為準(zhǔn)則時(shí),Join表有多字段內(nèi)容,少則為空值NULL right join正好相反select * from A right join B where 條件
關(guān)于sql語(yǔ)句中怎么實(shí)現(xiàn)聯(lián)合查詢問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
分享題目:sql語(yǔ)句中怎么實(shí)現(xiàn)聯(lián)合查詢
網(wǎng)頁(yè)地址:http://jinyejixie.com/article24/iidhje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、App設(shè)計(jì)、App開(kāi)發(fā)、微信公眾號(hào)、自適應(yīng)網(wǎng)站、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)