gpt4 book ai didi

mysql - 如何使用 Left Join 和子查询修复 SQL 查询?

转载 作者:行者123 更新时间:2023-11-29 01:54:59 26 4
gpt4 key购买 nike

我有带 LEFT JOIN 的 SQL 查询:

SELECT COUNT(stn.stocksId) AS count_stocks
FROM MedicalFacilities AS a
LEFT JOIN stocks stn ON
(stn.stocksIdMF = ( SELECT b.MedicalFacilitiesIdUser
FROM medicalfacilities AS b
WHERE b.MedicalFacilitiesIdUser = a.MedicalFacilitiesIdUser
ORDER BY stn.stocksId DESC LIMIT 1)

AND stn.stocksEndDate >= UNIX_TIMESTAMP() AND stn.stocksStartDate <= UNIX_TIMESTAMP())

这些查询我想按条件从表 stocks 中选择一行,字段值等于 a.MedicalFacilitiesIdUser

我总是得到 count_stocks = 0 结果。但我需要得到 1

最佳答案

count(...) 聚合不计算 null,因此它的参数很重要:

COUNT(stn.stocksId)

因为 stn 是您的右手边的表,所以如果 left join 未命中,这将没有任何意义。你可以使用:

COUNT(*)

它计算每一行,即使它的所有列都是null。或左侧表 (a) 中永远不为 null 的列:

COUNT(a.ID)

关于mysql - 如何使用 Left Join 和子查询修复 SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31635813/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com