SQL INNER СОЕДИНЯЕТ два массива значений из одной таблицы - PullRequest
0 голосов
/ 06 марта 2019

У меня есть упрощенный запрос, где мне просто нужно пересечь два массива.Когда есть положительное пересечение, я получаю ожидаемый результат.Но если результата нет, я получаю все строки, возвращенные из всей таблицы, в отличие от ожидаемых нулевых строк.

Это один запрос, в котором возвращается одна строка, как и ожидалось:

SELECT ID FROM table_name WHERE ID IN (7188,2442,10350) AND ID IN (10350,6936)

Возвращает одну строку с идентификатором 10350, как и ожидалось.

Но если я попробую этот запрос:

SELECT ID FROM table_name WHERE ID IN (7188,2442) AND ID IN (10350,6936)

, он возвращает всю таблицу вместо нуля строк.

Ясно, что мой синтаксис неправильный, но я не знаю, как написать правильный запрос, который найдет пересечение двух массивов.Могу ли я узнать, как правильно написать такое пересечение?Обратите внимание, что это только одна таблица (в отличие от INNER JOIN из нескольких таблиц).Я должен использовать несколько массивов в качестве сравниваемых наборов.

Я долго искал SO и Google, но, похоже, ничего не найдено.Похоже, на этот вопрос должен быть простой ответ.

1 Ответ

1 голос
/ 12 марта 2019

Я выполнил этот запрос и все-таки получил пустой результат. Но затем я немедленно отправил результат в функцию WordPress, которая возвращает все строки, если вы вызываете пустой массив как одно из значений в $ args.

Когда я увидел ваши комментарии о том, что результаты не были воспроизведены, я понял, что мне нужно еще больше изолировать проблему. Таким образом, эти комментарии помогли мне решить проблему.

...