本文小編為大家詳細(xì)介紹“MySQL怎么實(shí)現(xiàn)全外連接”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Mysql怎么實(shí)現(xiàn)全外連接”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。
主要從事網(wǎng)頁(yè)設(shè)計(jì)、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、響應(yīng)式網(wǎng)站開(kāi)發(fā)、程序開(kāi)發(fā)、微網(wǎng)站、小程序開(kāi)發(fā)等,憑借多年來(lái)在互聯(lián)網(wǎng)的打拼,我們?cè)诨ヂ?lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、網(wǎng)絡(luò)營(yíng)銷(xiāo)經(jīng)驗(yàn),集策劃、開(kāi)發(fā)、設(shè)計(jì)、營(yíng)銷(xiāo)、管理等多方位專(zhuān)業(yè)化運(yùn)作于一體,具備承接不同規(guī)模與類(lèi)型的建設(shè)項(xiàng)目的能力。
MySql中多表查詢(xún)只提供了內(nèi)連接,左外連接與右外連接:
table_reference {[INNER] JOIN | {LEFT|RIGHT} [OUTER] JOIN} table_reference ON conditional_expr
SELECT * FROM emp e JOIN dept d ON e.deptno=d.deptno;
在左外連接和右外連接時(shí)都會(huì)以一張表為基表,該表的內(nèi)容會(huì)全部顯示,然后加上兩張表匹配的內(nèi)容。
如果基表的數(shù)據(jù)在另一張表沒(méi)有記錄。
那么在相關(guān)聯(lián)的結(jié)果集行中列顯示為空值(NULL)。
SELECT * FROM emp e LEFT JOIN dept d ON e.deptno=d.deptno;
SELECT * FROM emp e RIGHT JOIN dept d ON e.deptno=d.deptno;
左表和右表都不做限制,所有的記錄都顯示,兩表不足的地方用null 填充;
也就是:
左外連接=左表全部記錄+相關(guān)聯(lián)結(jié)果
右外連接=右表全部記錄+相關(guān)聯(lián)結(jié)果
全外連接=左表全部記錄+右表全部記錄+相關(guān)聯(lián)結(jié)果=左外連接+右外連接-相關(guān)聯(lián)結(jié)果(即去重復(fù))
那么在MYSQL中誰(shuí)可以做到呢?
UNION
UNION 操作符用于合并兩個(gè)或多個(gè) SELECT 語(yǔ)句的結(jié)果集。
注釋?zhuān)耗J(rèn)地,UNION 操作符選取不同的值。如果允許重復(fù)的值,請(qǐng)使用 UNION ALL。
故實(shí)現(xiàn)全外連接可以使用:
SELECT * FROM emp e LEFT JOIN dept d ON e.deptno=d.deptno UNION SELECT * FROM emp e RIGHT JOIN dept d ON e.deptno=d.deptno;
注釋?zhuān)阂陨线B接全為等值連接;Oracle中全外連接可以使用full join;請(qǐng)不要弄混。
讀到這里,這篇“Mysql怎么實(shí)現(xiàn)全外連接”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。