2016-12-21 1 views
0

У меня есть таблица TABLE_A со следующими столбцамиPostgres Match Все значения массива в одной колонке с и условия

id event_id 
1 101 
1 102 
1 103 
2 105 
2 103 
2 106 

Я хочу искать (101, 103) с и условиях, аналогичных В запросе с ИЛИ условием

let say id является чуждой другой таблице event_categories, имеющей отношение, подобное этому.

id  parent_id 
101  null 
102  101 
103  101 
104  null 
105  104 

, поэтому я хочу, чтобы извлечь записи из TABLE_A на основе и с родительской категории событий, OR в категории суб-события этого родителя.

Прикрепленный скриншот для более разъяснений

enter image description here

Например "Художественные Галереи & Экспонаты", "Фестиваль", "Food & вино" с И состояние,

Все суб-категории " Художественные галереи & Экспонаты «с условием ИЛИ» Арт & Мастерские ремесел «ИЛИ» Арт & Ярмарки ремесел «ИЛИ« Изобразительное искусство », если они отмечены.

Таблица событие

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 является внешним ключом событий TĀ BLE

event_id | event_category_id 
----------+------------------- 
    24590 |     1 
    24590 |    13 
    24445 |     1 
    24445 |    13 
    24591 |    1 
+0

Я ответил на ваш первый вопрос, но второй один не совсем понятно. Можете ли вы показать нам полный пример для второго случая? –

+0

Можете ли вы предоставить образец из обеих таблиц и то, что вы хотите получить. –

+0

@EvanCarroll обновил деталь таблицы и хочет получать события по категории событий –

ответ

0

Первый вопрос:

SELECT id 
FROM table_a 
WHERE id IN (101, 103) 
GROUP BY id 
HAVING COUNT(DISTINCT id) = 2 
Смежные вопросы