Невозможно, ГДЕ, когда ANDing несколько критериев - PullRequest
0 голосов
/ 22 мая 2019

У меня есть таблица с именем links, которая содержит столбец idl (PRIMARY) и три столбца ide, idd и idv, которые являются целыми числами, связанными внешним ключом с соответствующими сущностями таблиц, дескрипторами и значениями, каждый из которых содержит индекс PRIMARY для ideIdd IDV соответственно.Я хочу выбрать записи, соответствующие некоторым критериям.

Запрос

    SELECT DISTINCT(l.ide)
    FROM links l 
    WHERE (idd = 34 AND idv = 60) OR (idd = 31 AND idv = 166)

работает нормально.Но тот же запрос с AND не дает никакого результата (я точно знаю, что должен быть результат).

Когда я спрашиваю объяснение, я получаю сообщение «Невозможный запрос».

Заранее спасибо за любую подсказку.

Редакция: В моей таблице по крайней мере две строки (idl, ide, idd, idv): 232, 297, 31, 166 и 235, 297, 34, 60.

Я хочу выбрать ide 297.

Надеюсь, это будет понятнее.

1 Ответ

0 голосов
/ 22 мая 2019
DROP TABLE IF EXISTS links;

CREATE TABLE links
(ide INT NOT NULL
,idd INT NOT NULL
,idv INT NOT NULL
,PRIMARY KEY(ide,idd)
);

INSERT INTO links VALUES
(1,34,60),
(1,31,166);

SELECT * FROM links;
+-----+-----+-----+
| ide | idd | idv |
+-----+-----+-----+
|   1 |  34 |  60 |
|   1 |  31 | 166 |
+-----+-----+-----+
2 rows in set (0.00 sec)

SELECT ide FROM links WHERE (idd,idv) IN((34,60),(31,166)) GROUP BY ide HAVING COUNT(*) = 2;
+-----+
| ide |
+-----+
|   1 |
+-----+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...