Прошу прощения за запутанный заголовок. Мне интересно вот что: у меня есть запрос SELECT
, который в своих условиях WHERE
выполняет сравнение нескольких столбцов IN
с набором результатов, возвращаемым подзапросом. По сравнению с результатами этого подзапроса я хочу сравнить два возможных набора значений, каждый из которых включает одно значение из родительского запроса SELECT
и несколько констант.
Другими словами, как я могу сделать что-то вроде этой работы:
SELECT ... WHERE ((id, 1, 2, 3), (id, 4, 5, 6)) IN (SELECT a, b, c, d FROM atable)
В этом случае 'id' предоставляется родительским оператором SELECT
, но другие значения являются константами. Намерение состоит в том, чтобы сравнить эти два набора значений с множеством различных значений (a, b, c и d) в «atable».
Я знаю, что могу сделать эту работу, добавив ИЛИ и повторив сравнение IN
, чтобы сравнить два возможных набора с результатами подзапроса по отдельности, но я не хочу делать это ради эффективности (так как это повторится подзапрос).
Я прошу прощения, если этот запрос не был сформулирован очень изящно, но я надеюсь, что смысл встречается. Я попытался найти в Google и прочитать документацию по MySQL безрезультатно (возможно, потому, что не знаю, как правильно сформулировать проблему).
Заранее спасибо за ваше время и помощь.