0
Я чувствую, что должен быть более простой способ, чтобы написать это, так как SELECT, операторы вытягивать из той же таблицы:Можно ли упростить этот SQL-запрос вложенного выбора?
SELECT column1
FROM table1
WHERE column2 = 'VIRTUAL'
AND column3 IN
(SELECT column3
FROM table1
WHERE column1 = 'ELEC-035A');
Добавить GROUP BY T1.column1 в конце запроса, чтобы избежать дублирования, отсутствующего в исходном запросе. Или просто SELECT DISTINCT. – PawelP
@PawelP Я не решался добавить предложение GROUP BY при написании запроса, и я решил оставить ту же логику, что и исходная. Но вы правы, лучше предоставить решение, которое позволит избежать дубликатов. –
Хорошо, это ваш ответ в конце. Логика не совсем то же самое, потому что вы получите больше строк, возвращенных, чем запрос oOP (когда в одном из предложений IN обнаружено несколько одинаковых значений, оно не будет увеличивать количество результатов, но для JOIN это будет, поскольку каждый раз, когда вы найдите совпадение, в которое вы присоединитесь. Тем не менее, GROUP BY (или select distinct) будет давать меньше (или равных) строк, чем запрос OP. Я предполагаю, что с предоставленной нами информацией OP сможет точно настроить запрос по своему вкусу . OP: единственный способ, которым эти запросы будут отличаться, - это количество дубликатов. – PawelP