[英]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.