Я хочу проверить, совпадает ли какой-либо из 2 столбцов моей таблицы с результатом подзапроса.В настоящее время я делаю SELECT ... FROM ... WHERE (var1 IN SUBQUERY или var2 IN SUBQUERY), и это работает.Но эти 2 подзапроса одинаковы, поэтому я думаю, что производительность можно улучшить, если бы я мог проверить, есть ли какой-либо из var1 или var2 в SUBQUERY.Можно ли это сделать, не выполняя подзапрос дважды?
Я пробовал что-то вроде SELECT ... ОТ ... ГДЕ var1 ИЛИ var2 В SUBQUERY, но это, конечно, не работает, потому что ГДЕ видит этокак 2 различных условия, таких как (var1) ИЛИ (var2 IN SUBQUERY).Запрос, который в настоящее время работает, и я хочу повысить производительность, выглядит следующим образом:
SELECT table1.id FROM table1 WHERE (table1.first IN (SELECT table2.id FROM table2 WHERE (table2.xCord BETWEEN ? AND ?) AND (table2.yCord BETWEEN ? AND ?)) OR table1.second IN (SELECT table2.id FROM table2 WHERE (table2.xCord BETWEEN ? AND ?) AND (table2.yCord BETWEEN ? AND ?)))
Итак, подзапрос такой:
SELECT table2.id FROM table2 WHERE (table2.xCord BETWEEN ? AND ?) AND (table2.yCord BETWEEN ? AND ?)