【发布时间】:2014-07-07 06:57:39
【问题描述】:
我想检查表 A 是否有任何条目,然后只检查表 B 中是否存在表 A 列值。如果表 A 中没有数据,则从表 B 中获取数据。
当且仅当 TablaA 中有数据时,我希望 TableB 选择查询的 Exists 子句,否则它将只是 TableB 的普通选择查询
内连接不起作用,因为 TableA 可能没有任何数据,甚至没有左连接。
如何在单个查询中做到这一点?
类似这样的:
select Id from TableB where
if( select count(*) from TableA ) > 0 then Id in (select col from TableA)
【问题讨论】:
-
什么?我无法理解。它太模糊了。
-
A表不为空怎么办?
-
如果我的理解有误,请纠正我,您想检查表 A 是否有记录,如果是,您将显示记录在表 A 和表 B 中有关系?如果没有记录?会发生什么?它只会显示表 B 的所有记录还是什么也不显示?因为如果您只想查找表 A 中是否有与表 B 相关的记录,只需使用 Join 它将为您获取记录..
-
@wrecklez:你的理解是对的。检查表A是否有记录,如果有则显示记录在表A和表B中有关系。如果没有记录,则只显示所有记录表 B.
-
@user1049021 你能看到,如果我更新的答案对你有帮助吗?