的SQL选择id和输出存在于单个SQL查询中
我有两个表,主键(A.Id),外键(EquipmentKey)引用在两个表A和B之间。现在我希望结果像A.Id一样,不管它是否存在于B中 这就是我正在尝试的问题。单次查询是否容易实现? 下面的查询不起作用。我收到错误T。找不到Id的SQL选择id和输出存在于单个SQL查询中,sql,Sql,我有两个表,主键(A.Id),外键(EquipmentKey)引用在两个表A和B之间。现在我希望结果像A.Id一样,不管它是否存在于B中 这就是我正在尝试的问题。单次查询是否容易实现? 下面的查询不起作用。我收到错误T。找不到Id select A.Id, ExistsInB = CASE WHEN EXISTS(SELECT 1 FROM B WHERE EquipmentKey = A.Id) THEN 1
select
A.Id,
ExistsInB = CASE
WHEN EXISTS(SELECT 1 FROM B WHERE EquipmentKey = A.Id) THEN 1
ELSE 0
END
from A
这是一个单一的查询。带有子查询的查询仍作为单个“复杂”查询处理。您是否询问我们您的查询是否有效?你没试过吗?是的。但它不起作用。I Get T T。即使列存在,也找不到Id列。您没有名为T的表。只有A和B。您从未指定过表
T
,只有A
和B
这仅在DBMS支持布尔值和B时有效。EquipmentKey
是您必须添加的FKDISTINCT
SELECT A.Id, (B.EquipmentKey IS NOT NULL) AS ExistsInB
FROM A LEFT OUTER JOIN B ON (A.Id = B.EquipmentKey)