我试图运行以下查询,但得到一个错误:
select S
from St
where count(
select *
from L
where L.Wh = S
) = 0
Run Code Online (Sandbox Code Playgroud)
我收到错误:
错误代码1064,SQL状态42000:您的SQL语法中有错误...
我该怎么写这个查询?
您必须在子选择中使用COUNT聚合函数,因此您的子查询返回单个结果.
select S
from St
where (select COUNT(*)
from L
where L.Wh = St.S
) = 0
Run Code Online (Sandbox Code Playgroud)
如果要选择"St"中没有"L"中任何记录的所有记录,您还可以使用以下NOT EXISTS()功能:
SELECT S
FROM St
WHERE NOT EXISTS (SELECT 1 FROM L WHERE L.Wh = St.S)
Run Code Online (Sandbox Code Playgroud)
你可以使用NOT EXISTS条款.
SELECT S
FROM ST
WHERE NOT EXISTS (
SELECT *
FROM L
WHERE L.Wh = ST.S
)
Run Code Online (Sandbox Code Playgroud)