[英]MYSQL Results from 2 tables (JOIN not working out)
遇到一种情况,我试图从 2 个表中获取数据,但使用 JOIN 没有得到正确的结果。
示例查询: SELECT a.data_a, b.data_b FROM Table_A JOIN Table_B USING (ref) WHERE ref = 10;
.
Table_A
---------------------
| id | data_a | ref |
---------------------
| 1 | 123 | 10 |
---------------------
Table_B
---------------------
| id | data_b | ref |
---------------------
| 1 | 456 | 10 |
| 2 | 789 | 10 |
---------------------
我要回来的是...
-------------------
| data_a | data_b |
-------------------
| 123 | 456 |
| 123 | 789 |
-------------------
我想要的是...
-------------------
| data_a | data_b |
-------------------
| 123 | |
| | 456 |
| | 789 |
-------------------
对于这种情况,您不需要join
,而是使用union
。
select distinct a.data_a as data_a, '' as data_b from tableA where ref = 10
union all
select distinct '', b.data_b from tableB where ref = 10
你不应该使用JOIN
,你应该使用UNION
来获取不同行的数据。
SELECT data_a, "" AS data_b
FROM Table_A
WHERE ref = 10
UNION
SELECT "" AS data_a, data_b
FROM Table_B
WHERE ref = 10
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.