我需要获取未使用的记录。我的桌子是这样的:
细分表
| id | name |
-------------
| 1 | AAA |
| 2 | BBB |
| 3 | CCC |
| 4 | DDD |
segment_segment_assoc
| id | segment_name | child_name |
----------------------------------
| 1 | AAA | BBB |
| 2 | AAA | CCC |
segment_segment_assoc 表存储段之间的父/子关系。我需要一个能够计数的计数 段表中的计数在 segment_segment_assoc < < / strong>表。
我想要这样做的方式是以某种方式将 segment_segment_assoc 表转换为单个名称类型表。例如,它应该转到this =&gt;
| name |
--------
| AAA |
| BBB |
| CCC |
segment_segment_assoc.segment_name 和 segment_segment_assoc.child_name 列被“追加”或“加入”在一起。一旦我有了这个,我就可以做一个“NOT IN”来查看 segment_segment_assoc 表中哪些段没有被“使用”。
这应该用SQL编写,但只是为了上下文,我使用的是Postgres。
先谢谢!
答案 0 :(得分:1)
使用UNION应该可以解决问题:
SELECT count(*) FROM segment
WHERE name NOT IN
(
SELECT segment_name FROM segment_segment_assoc
UNION
SELECT child_name FROM segment_segment_assoc
)