Sqlite - эффективный запрос на выборку
У меня есть таблица в моей базе данных, я делаю Выбрать все на:
SELECT * FROM TableA;
Я хочу добавить столбец, который имеет значение true или false, если в другой таблице есть связанный столбец. Я могу сделать это с этим:
SELECT *, (SELECT COUNT(Id) > 0 FROM TableB WHERE Id = TableA.Id) FROM TableA;
Но я не хочу считать КАЖДУЮ строку в Таблице B, чтобы решить эту проблему как неэффективную. Я по сути хочу EXISTS
проверьте вместо подсчета.
Как мне заменить COUNT
с EXISTS
?
Спасибо!
2 ответа
Решение
Ах - только что понял ответ на свой вопрос
SELECT *, EXISTS(SELECT Id FROM TableB WHERE Id= TableA.Id) AS DoesExist FROM TableA
Используя left join
SELECT a.*, b.id is not null as condition_check
FROM TableA a
LEFT JOIN TableB b ON a.Id = b.Id