如何使用SQL語句在MySQL中進行數據連接和聯合查詢?
數據連接和聯合查詢是 SQL 語言中常用的技巧,能夠在多個表中獲取和篩選所需的數據。在 MySQL 中,我們可以通過使用 JOIN 子句來實現數據連接,使用 UNION 和 UNION ALL 子句來實現數據的聯合查詢。接下來,我們將詳細介紹如何使用 SQL 語句在 MySQL 中進行數據連接和聯合查詢,并提供具體的代碼示例。
- 數據連接:
數據連接是將多個表中的數據通過共同的列進行關聯,以得到所需的數據。在 MySQL 中,我們可以使用 INNER JOIN、LEFT JOIN、RIGHT JOIN 和 FULL JOIN 四種連接方式。下面是對它們的具體解釋和代碼示例:
INNER JOIN (內連接):只返回在連接條件下兩個表中都有匹配的行。
SELECT 列名 FROM 表1 INNER JOIN 表2 ON 表1.列名 = 表2.列名;
登錄后復制LEFT JOIN(左連接):返回左側表(即第一個表)中的所有行,以及右側表中與左側表匹配的行。
SELECT 列名 FROM 表1 LEFT JOIN 表2 ON 表1.列名 = 表2.列名;
登錄后復制RIGHT JOIN(右連接):返回右側表(即第二個表)中的所有行,以及左側表中與右側表匹配的行。
SELECT 列名 FROM 表1 RIGHT JOIN 表2 ON 表1.列名 = 表2.列名;
登錄后復制FULL JOIN(全連接):返回左右兩側表中的所有行,無論匹配與否。
SELECT 列名 FROM 表1 FULL JOIN 表2 ON 表1.列名 = 表2.列名;
登錄后復制
- 聯合查詢:
聯合查詢用于組合多個 SELECT 語句的結果集,返回一個包含所有結果的臨時表。在 MySQL 中,我們可以使用 UNION 和 UNION ALL 兩種方式進行聯合查詢。下面是對它們的具體解釋和代碼示例:
UNION:返回兩個或多個 SELECT 語句的結果集,去除重復的行。
SELECT 列名 FROM 表1 WHERE 條件 UNION SELECT 列名 FROM 表2 WHERE 條件;
登錄后復制UNION ALL:返回兩個或多個 SELECT 語句的結果集,包含重復的行。
SELECT 列名 FROM 表1 WHERE 條件 UNION ALL SELECT 列名 FROM 表2 WHERE 條件;
登錄后復制