亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL中UNION 和 JOIN 多表聯(lián)合查詢方式

 更新時(shí)間:2024年11月20日 15:02:16   作者:碼農(nóng)研究僧  
本文介紹了在MySQL中UNION和JOIN兩種多表查詢的方式,包括它們的適用場(chǎng)景、語(yǔ)法和特性,JOIN用于關(guān)聯(lián)數(shù)據(jù),而UNION用于合并具有相同結(jié)構(gòu)但無(wú)直接關(guān)系的數(shù)據(jù),感興趣的朋友跟隨小編一起看看吧

前言

在 MySQL 中,UNION 和 JOIN 是多表查詢的兩種主要方式。它們有不同的適用場(chǎng)景和語(yǔ)法

兩者的差異如下:

特性JOINUNION
數(shù)據(jù)組合橫向組合,合并兩表數(shù)據(jù)到一個(gè)行內(nèi)縱向組合,合并兩表數(shù)據(jù)到多個(gè)行
數(shù)據(jù)結(jié)構(gòu)要求表間需有關(guān)聯(lián)條件,如外鍵等列數(shù)和數(shù)據(jù)類型需一致
結(jié)果數(shù)據(jù)量結(jié)果記錄數(shù)量通常小于表數(shù)據(jù)量結(jié)果記錄數(shù)量可能增加
常用場(chǎng)景數(shù)據(jù)關(guān)聯(lián),如訂單與用戶信息查詢數(shù)據(jù)匯總,如多表的類似記錄組合

具體的使用選擇:

  • 使用 JOIN:

當(dāng)需要將兩表數(shù)據(jù)按照某種邏輯相關(guān)聯(lián)時(shí),選擇 JOIN

  • 使用 UNION:

當(dāng)需要合并多表中具有相同結(jié)構(gòu)但無(wú)直接關(guān)系的數(shù)據(jù)時(shí),選擇 UNION

1. JOIN

JOIN 用于在多個(gè)表之間按一定條件關(guān)聯(lián)數(shù)據(jù)

JOIN 查詢通過指定的條件(如外鍵關(guān)系)將表橫向組合

SELECT column_names
FROM table1
[INNER|LEFT|RIGHT] JOIN table2
ON table1.column_name = table2.column_name
WHERE conditions;

基本的類型有如下:

JOIN 類型

  • INNER JOIN(內(nèi)連接)

只返回兩個(gè)表中滿足 ON 條件的記錄
若某條記錄在任一表中沒有匹配項(xiàng),則不會(huì)包含在結(jié)果中
常用于提取相關(guān)數(shù)據(jù)

  • LEFT JOIN(左連接)

返回左表中的所有記錄,以及右表中與左表記錄匹配的記錄
如果右表中沒有匹配項(xiàng),則結(jié)果中該記錄右表的字段為 NULL
常用于查找左表中的數(shù)據(jù)即使右表沒有匹配項(xiàng)時(shí)

  • RIGHT JOIN(右連接)

返回右表中的所有記錄,以及左表中與右表記錄匹配的記錄
如果左表中沒有匹配項(xiàng),則結(jié)果中該記錄左表的字段為 NULL
不如 LEFT JOIN 常用

  • FULL OUTER JOIN(全連接) (MySQL 不直接支持,但可通過 UNION 模擬)

返回兩個(gè)表中所有記錄,不論是否有匹配項(xiàng)
不支持時(shí)用以下替代:

SELECT ...
FROM table1
LEFT JOIN table2 ON condition
UNION
SELECT ...
FROM table1
RIGHT JOIN table2 ON condition;

2. UNION

UNION 用于將兩個(gè)或多個(gè)查詢結(jié)果縱向組合為一個(gè)結(jié)果集。它對(duì)查詢的列數(shù)和數(shù)據(jù)類型有要求

基本的語(yǔ)法如下:

SELECT column_names
FROM table1
WHERE conditions
UNION [ALL]
SELECT column_names
FROM table2
WHERE conditions;

注意事項(xiàng)有如下:

  • 默認(rèn)去重:

UNION 會(huì)去掉結(jié)果集中重復(fù)的記錄
若需要保留所有重復(fù)記錄,使用 UNION ALL

  • 列數(shù)和數(shù)據(jù)類型要求:

所有參與查詢的 SELECT 語(yǔ)句必須有相同的列數(shù)
每列的數(shù)據(jù)類型必須兼容

  • 結(jié)果排序:

可以通過在 UNION 之后的結(jié)果集中加 ORDER BY 對(duì)整體結(jié)果排序

到此這篇關(guān)于MySQL中UNION 和 JOIN 多表聯(lián)合查詢方式的文章就介紹到這了,更多相關(guān)mysql union和join內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論