我的table table_a包含以下列
id event_id
1 101
1 102
1 103
2 105
2 103
2 106
我想搜索(101,103)with和条件类似于带有OR条件的IN查询
假设id是另一个具有这种关系的表event_categories的外来者。
id parent_id
101 null
102 101
103 101
104 null
105 104
所以我想从table_a中获取基于AND的记录和父事件类别,或者在该父项的子事件类别中获取记录。
附上截图以获得更多说明
例如“Art Galleries& Exhibits”,“Festivals”,“Food& Wine”with AND condition,
“艺术画廊和展览”的所有子类别,如果选中,则为OR条件“Art& Craft Workshops”或“Art& Craft Fairs”或“Visual Arts”。
表事件
id
-------
24445
24446
24447
24448
24449
event_categories 表
id | name | parent_id
-----+--------------------------+-----------
55 | Art & Craft Workshops | 25
53 | Art & Craft Fairs | 25
25 | Art Galleries & Exhibits |
14 | Carnivals | 3
56 | Celebrations | 3
64 | Chili Cook-offs | 26
47 | Circus | 13
45 | Comedy | 13
关系表事件与 event_categories event_id是事件表
的外键 event_id | event_category_id
----------+-------------------
24590 | 1
24590 | 13
24445 | 1
24445 | 13
24591 | 1
答案 0 :(得分:0)
第一个问题:
SELECT id
FROM table_a
WHERE id IN (101, 103)
GROUP BY id
HAVING COUNT(DISTINCT id) = 2