我遇到了我的MySQL查询问题。我想使用left join 3另一个表来显示id从一个表中显示。如何使用计数少于另一个表
什么我要的是:
- 显示ID为NULL另一个表
- 1,并具有COUNT()<(获得另一个表列)
我尝试过,但它仍然是错误的:
SELECT p.id FROM penerimaan AS p
LEFT JOIN perangkat AS per ON per.id_penerimaan=p.id
LEFT JOIN permintaan AS pa ON pa.id=p.id_permintaan
LEFT JOIN konfirmasi_permintaan AS k ON k.id_permintaan=pa.id
WHERE per.id_penerimaan IS NULL
GROUP BY p.id
HAVING COUNT(per.id_penerimaan) < k.jumlahConfirm //how to get column in another table
ORDER BY p.id ASC
表我已经
table permintaan
id jumlah status
2 3 Confirmed
3 5 Confirmed
-----------------------------------------------
table penerimaan
id id_permintaan date
1 2 2017-07-12
2 3 2017-08-12
-----------------------------------------------
table konfirmasi_permintaan
id id_permintaan jumlahConfirmed
1 2 3
2 3 3
-----------------------------------------------
table perangkat
id id_penerimaan serial type
1 1 766544 SG90D-08-AS
2 1 552411 SLM2008T-EU
3 1 552411 SLM2008T-TU
4 2 561434 SG95-24-AS
我期望这样
id_penerimaan
2
结果虽然在表perangkat id_penerimaan IS NULL但仍然显示,因为计数(perangkat.id_penerimaan)为2在表perangkat小于jumlahConfirm在表konfirmasi_permintaan
谢谢
'COUNT(per.id_penerimaan)'只计算非空值。但'WHERE per.id_penerimaan IS NULL'意味着你只返回空行,因此计数将始终为0. – Barmar
你可以显示一些示例数据和期望的结果吗? – Barmar
我更新了我的问题,请再次检查:) @Barmar –