Я пытаюсь выяснить, как получить все строки с идентификатором, имеющим определенное значение в другом столбце.Сравнение строк со значением столбца
База данных выглядит следующим образом:
Я хочу, чтобы получить те строки, которые имеют VAL 2 и соответствующие строки ID. Так что в данном случае это дало бы мне все строки ID 1 и ID 3 строки:
Почему бы присоединиться быстрее, чем коррелированные подзапросы? База данных по-прежнему должна искать соответствующие идентификаторы для каждого идентификатора, и в этом запросе есть дополнительный этап поиска дубликатов. –
Да, база данных по-прежнему должна искать соответствующие ID для каждого идентификатора, но выполнение подзапроса в where-clause вызывает дополнительные накладные расходы, не так ли? Каждая строка в таблице требует выполнения подзапроса. Простая реализация внутреннего соединения базы данных будет быстрее, чем подзапрос выполнения для каждой строки. Возможно, оптимизатор sqlite настолько умный и оптимизирует эти запросы к идентичным планам выполнения. –
P.S. DISTINCT может быть заменен GROUP BY. И если это так важно, можно присоединиться к таблице с подзапросом, который возвращает идентификаторы с VAL = 2 –