我有两个结果集 A 和 B
表A是这样的
+------+---------+------------+
| a_id | item no | total sold |
+------+---------+------------+
| 1 | 101 | 23 |
| 2 | 102 | 34 |
| 4 | 405 | 54 |
| 5 | 506 | 65 |
| 6 | 104 | 23 |
+------+---------+------------+
B表是这样的
+------+---------+----------+
| b_id | item no | location |
+------+---------+----------+
| 1 | 101 | A1 |
| 2 | 102 | A2 |
| 3 | 103 | A3 |
| 4 | 104 | A4 |
+------+---------+----------+
我想实现如下输出
+------+---------+------------+----------+
| a_id | item no | total sold | location |
+------+---------+------------+----------+
| 1 | 101 | 23 | A1 |
| 2 | 102 | 34 | A2 |
| 4 | 405 | 54 | NULL |
| 5 | 506 | 65 | NULL |
| 6 | 104 | 23 | A4 |
+------+---------+------------+----------+
我想将“LOCATION”列附加到表 A 并显示表 B 中存在的每个项目编号的位置值。如果表 A 中的项目编号没有位置值,则 LOCATION 值具有为 NULL(即 EMPTY)。
由于是初学者,不知道怎么实现。我尝试使用 UNION 但未能编写正确的查询
最佳答案
您正在寻找的是一个 Join。特别是 Left Outer Join,这样您就可以从左表 (TableA) 中获得所有结果,并且仅从右表 (TableB) 中获得匹配的结果。
指定连接时,您使用ON
子句告诉数据库哪些字段在表之间相关:
SELECT
a_id,
a.itemno,
a.totalsold,
b.location
FROM
tableA
LEFT OUTER JOIN tableB ON
tableA.itemno = tableB.itemno
关于mysql - 如何在 mysql 中组合或合并两个结果集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40006845/