У меня есть таблица:MySQL: Выбор записей с условиями, относится к нескольким строкам
ДЕТАЛЬ
--------------------------------------------------------
ID | PARENT_ID | DATA_KEY | DATA_VALUE
========================================================
1 | 1 | Guitar | 4
--------------------------------------------------------
2 | 1 | Radio | 2
--------------------------------------------------------
3 | 1 | Tv | 2
--------------------------------------------------------
4 | 1 | Drum Kit | 3
--------------------------------------------------------
5 | 2 | Guitar | 4
--------------------------------------------------------
6 | 2 | Radio | 2
--------------------------------------------------------
7 | 2 | Tv | 2
--------------------------------------------------------
8 | 2 | Drum Kit | 3
--------------------------------------------------------
9 | 3 | Guitar | 1
--------------------------------------------------------
10 | 3 | Radio | 2
--------------------------------------------------------
11 | 3 | Tv | 2
--------------------------------------------------------
12 | 3 | Drum Kit | 3
--------------------------------------------------------
Как выбрать в MySQL отчетливого PARENT_ID, которая удовлетворяет приведенные ниже условия:
-
- DATA_KEY = 'Guitar' и DATA_VALUE = '4'
-
- DATA_KEY = 'Радио' и DATA_VALUE = '2'
Ожидаемые результаты запроса должны быть
-------------
PARENT_ID
=============
1
-------------
2
-------------
Поскольку только PARENT_ID 1 и 2, имеет 'Гитара' = '4' и 'Радио' = '2'
Я попытался SELECT DISTINCT PARENT_ID ИЗ ДЕТАЛЕЙ WHERE (DATA_KEY = 'Гитара' И DATA_VALUE = '4') AND (DATA_KEY = 'Радио' И DATA_VALUE = '2'), но он возвращает мне пустые данные. – Macchiato
используйте OR вместо AND (один из скобок) – Sebastjan
Я ответил с запросом, который получит то, что вы ищете. Однако я не понимаю ПОЧЕМУ, это полезно для вас. Честно говоря, вся настройка данных выглядит сомнительной для меня - я предполагаю, что больше знаний о схеме таблицы требуется для понимания использования. – Jeff