SQL having/where 别名列上的语句

SQL having/where statement on alias column

我正在尝试根据别名 table

中查询结果中给出的值来设置列的结果
update autos
    set risico = 0
    where in (select leden.lidnaam, count(deelnemers.evenementnr) as AantalDeelnames
    from leden 
        full join autos on leden.lidnr = autos.lidnr
        full join deelnemers on autos.autonr = deelnemers.autonr
        group by leden.lidnaam
        having AantalDeelnames = 0)

您的 IN 语句中没有指定字段。您应该有一个字段名称来与 select 语句进行比较。它看起来像 WHERE field_name IN (SELECT .....)

你可以在having子句中重复聚合表达式:

update autos
    set risico = 0
    where in (select leden.lidnaam, count(deelnemers.evenementnr) as AantalDeelnames
    from leden 
        full join autos on leden.lidnr = autos.lidnr
        full join deelnemers on autos.autonr = deelnemers.autonr
        group by leden.lidnaam
        having count(deelnemers.evenementnr) = 0)