Sqlite - 高效 select 计数查询
Sqlite - efficient select count query
我的数据库中有一个 table 我做了一个 Select 全部在:
SELECT * FROM TableA;
如果花药 table 中有相关列,我想附加一个判断为真或假的列。我可以这样做:
SELECT *, (SELECT COUNT(Id) > 0 FROM TableB WHERE Id = TableA.Id) FROM TableA;
但我不想计算 TableB 中的每一行来解决这个问题,因为它效率低下。我基本上想要一个 EXISTS
检查而不是计数。
如何将 COUNT
替换为 EXISTS
?
谢谢!
啊 - 刚刚意识到我自己的问题的答案
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
我的数据库中有一个 table 我做了一个 Select 全部在:
SELECT * FROM TableA;
如果花药 table 中有相关列,我想附加一个判断为真或假的列。我可以这样做:
SELECT *, (SELECT COUNT(Id) > 0 FROM TableB WHERE Id = TableA.Id) FROM TableA;
但我不想计算 TableB 中的每一行来解决这个问题,因为它效率低下。我基本上想要一个 EXISTS
检查而不是计数。
如何将 COUNT
替换为 EXISTS
?
谢谢!
啊 - 刚刚意识到我自己的问题的答案
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