簡體   English   中英

mysql中左連接的sql查詢中table1和table2中的主鍵不相同

[英]sql query for left join in mysql for primary key in table1 and table2 are not same

我有以下兩個SQL表(在MySQL中):

customers
+----+------+--------------+
| id | Name | City         |
+----+------+--------------+
| 1  | John | New york     |
+----+------+--------------+
| 2  | Jane | Paris        |
+----+------+--------------+
| 3  | Jeph | California   |
+----+------+--------------+
| 4 | Mike  | Singapore    |
+----+------+--------------+
products
+----+------+--------------+
| id | proId| proName      |
+----+------+--------------+
| 1  | 0945 | Laptop       |
+----+------+--------------+
| 2  | 0950 | Mobile       |
+----+------+--------------+
| 3  | 1045 | Tablet       |
+----+------+--------------+
| 10 | 1048 | Ipod         |
+----+------+--------------+

查找兩個表中不同的id的查詢將是什么? 所需的輸出將是:

Call
+----+------+--------------+
| id | proId|Name          |
+----+------+--------------+
| 4  | Null | Mike         |
+----+------+--------------+
| 10 | 1048 | Null         |
+----+------+--------------+

由於MySQL沒有FULL OUTER JOIN,因此必須使用帶有兩個LEFT JOIN的UNION:

SELECT c.id, p.proID, c.Name
FROM customers AS c LEFT JOIN products AS p ON c.id = p.id
WHERE p.id IS NULL
UNION
SELECT p.id, p.proID, c.Name
FROM products AS p LEFT JOIN customers AS c ON p.id = c.id
WHERE c.id IS NULL
;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM