PostgreSQL如何实现单个ID匹配展示多条关联物品数据
PostgreSQL多表全量匹配查询实现方案
实现逻辑
- 你的需求是生成客户表和物品表的所有行组合,对应SQL的*交叉连接(CROSS JOIN)*语法,该语法会返回左表每一行和右表每一行的拼接结果,不需要额外关联条件
- 需要将客户表的
id字段别名设置为id_stuff,即可满足输出字段要求
可用查询语句
写法1:显式CROSS JOIN(可读性更强,推荐)
SELECT c.id AS id_stuff, c.name, s.type FROM cust c CROSS JOIN stuff s;
写法2:隐式交叉连接
SELECT c.id AS id_stuff, c.name, s.type FROM cust c, stuff s;
输出效果示例
两张表分别有2条、3条数据时,最终会返回6条结果,符合你要求的每个客户匹配全部物品的效果:
| id_stuff | name | type |
|---|---|---|
| 12 | Anna | Knife |
| 12 | Anna | mug |
| 12 | Anna | fork |
| 23 | Beth | Knife |
| 23 | Beth | mug |
| 23 | Beth | fork |
内容的提问来源于stack exchange,提问作者Yulan
相关产品推荐
相关产品推荐

