mysql內連接外連接聯合查詢
在mysql中,內連接(inner join)外連接(outer join)和聯合查詢(union)是常用的查詢方式。這些查詢方式可以幫助我們更好地查詢數據,提高數據的利用價值。
內連接(inner join)是指將兩個或多個表中符合條件的行連接起來,結果集中只包含符合連接條件的行。內連接查詢通常用在需要查詢兩個或多個表中共有的數據的場景,比如在訂單表中查詢購買了哪些商品的數據。
SELECT A.order_id, A.order_date, B.product_name FROM orders A INNER JOIN products B ON A.product_id = B.product_id;
外連接(outer join)是指將兩個或多個表中符合條件的行連接起來,結果集中包含符合連接條件的行和不符合連接條件的行。外連接查詢通常用在需要查詢當前表中不存在的字段的場景,比如在員工表中查詢沒有賬戶的員工數據。
SELECT A.employee_name, B.account_id FROM employees A LEFT OUTER JOIN accounts B ON A.employee_id = B.employee_id WHERE B.account_id IS NULL;
聯合查詢(union)是指將兩個或多個查詢的結果集合并起來,結果集中只包含不重復的數據。聯合查詢通常用在需要查詢多個表中的數據并將結果合并的場景,比如查詢多個省份的銷售額并將結果合并。
SELECT '2019' AS year, province, SUM(sales) AS total_sales FROM province_sales_2019 GROUP BY province UNION SELECT '2020' AS year, province, SUM(sales) AS total_sales FROM province_sales_2020 GROUP BY province;