数据库查询一对多union
时间: 2023-11-16 11:01:46 浏览: 96
数据库查询中,一对多关系指的是一个表中的一条记录对应另一个表中的多条记录。而UNION操作可以将多个SELECT语句的结果集合并成一个结果集。因此,如果需要查询一对多关系的数据,可以使用UNION操作来实现。
具体来说,可以使用UNION ALL操作符来将多个SELECT语句的结果集合并成一个结果集,其中每个SELECT语句查询的是一对多关系中的一部分数据。例如,假设有两个表A和B,其中A表中的一条记录对应B表中的多条记录,可以使用以下SQL语句来查询A表和B表中的数据:
```
SELECT A.id, A.name, B.id, B.name
FROM A
INNER JOIN B ON A.id = B.a_id
UNION ALL
SELECT A.id, A.name, NULL, NULL
FROM A
LEFT JOIN B ON A.id = B.a_id
WHERE B.id IS NULL;
```
上述SQL语句中,第一个SELECT语句查询A表和B表中的匹配数据,第二个SELECT语句查询A表中没有匹配的数据。通过UNION ALL操作符将两个结果集合并起来,就可以得到A表和B表中的所有数据。
阅读全文