我正在玩sqlite并遇到以下问题:看起来无法在子句中嵌套子查询
当我尝试使用:
调用查询时... having count(select * from produkt) > 1
我收到错误:
OperationalError:near" select&#34 ;: syntax error
执行时
... having count(1) > 1
一切都很好
你有任何解决方法吗?
edit2:
我想写这个:
select distinct standort.name, standort.ort
from produktion
join standort on id_standort = standort.id
join produkt on id_produkt = produkt.id
where produkt.gewicht < 1
EXCEPT
select distinct standort.name, standort.ort
from produktion
join standort on id_standort = standort.id
join produkt on id_produkt = produkt.id
where produkt.kategorie = "Spiel"
以更优雅的方式,使用&#34;拥有&#34;
欢呼并非常感谢!
WOJTEK
答案 0 :(得分:2)
我认为这比您当前的选择
更符合您的意图SELECT ...
FROM Standort
JOIN produktion ...
JOIN produkt ...
WHERE product.kategorie != "Spiel" AND produkt.gewicht > 1
答案 1 :(得分:1)
我不确定你会在什么情况下这样做,但这在语法上是正确的:
having (select count(*) from produkt) > 1
编辑:
对于您的实际问题,此查询更简单:
select s.name, s.ort
from produktion pn join
standort s
on pn.id_standort = s.id join
produkt p
on pn.id_produkt = p.id
group by s.name, s.ort
having sum(case when p.gewicht < 1 then 1 else 0 end) > 0 and
sum(case when p.kategorie = 'Spiel' then 1 else 0 end) = 0;
这将返回所有s.name
/ s.ort
组合,其中包含&#34; gewicht&#34;小于1而且没有&#34; kategorie&#34;叫'Spiel'
。