sql - 使用来自多个类别的数据连接表格

标签 sql postgresql

我在名为 items_data 的表中有项目数据。

对于每一行,我有 3 列包含类别标签(cat1、cat2、cat3)。有些属于三个类别,有些只包含 1 个类别,其中 cat2 和 cat3 将有一个空单元格。

类别标签是出现在另一个名为 cat_label 的表中的 ID,该表包含两列,一列是 ID,一列是类别名称。

我想连接这两个表以形成一个新表,如果该项目属于两个类别,则会创建两行,输出将是两列,一列是项目,一列是类别。

最佳答案

使用UNION ALL

select a.item, b.name
from items_data a
join cat_label b on a.cat1 = b.id
union all 
select a.item, b.name
from items_data a
join cat_label b on a.cat2 = b.id
union all
select a.item, b.name
from items_data a
join cat_label b on a.cat3 = b.id

关于sql - 使用来自多个类别的数据连接表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24279567/

相关文章:

sql - 如何最大限度地降低 BigQuery 中每次 SQL 查询执行的成本

sql - 如何在SQL中从多列中选择数据的子集?

sql - Postgres LIKE 以列值作为子字符串

android - 按日期排序房间结果为字符串

sql - 如何使用 SQL 执行 JSON 递归嵌套聚合

mysql - 最大事务的sql查询

postgresql - 为什么 HikariCP 在 postgresql 中创建如此多的空闲连接

postgresql - 正则表达式替换电话号码中的国家代码和空格

java - 如何修复 SQL 错误、终止连接和 SQLState : 57P01

sql - 如果字符串中有单词,Postgresql 如何更新列?