gpt4 book ai didi

php - 获取分别存在于另一个表中且具有空值的记录数

转载 作者:行者123 更新时间:2023-11-30 22:49:11 25 4
gpt4 key购买 nike

我有两张 table 。 “listing_messages”和“listing_message_history”。

listing_messages  
=============
message_id listing_id listing_user third_party_user
1 162 7 32
2 162 7 33
3 162 7 12

listing_message_history
======================
listing_message_history message_id is_checked
1 1 0
2 1 1
3 1 1
4 2 0
5 2 1
6 3 0

搜索条件==> listing_user=7, is_checked=1
我想要结果..

message_id    count_of_unread_message_history  
12
2 1
3 0

我查询的是

SELECT count(`lmh`.`message_history_id`) AS COUNT,
`lmh`.`message_id`
FROM `listing_message_history` AS `lmh`
LEFT JOIN `listing_messages` AS `lm` ON `lmh`.`message_id` = `lm`.`message_id`
WHERE `lm`.`third_party_user`=7
AND `lmh`.is_checked=1
GROUP BY `lm`.`message_id`

但它不会返回计数 = 0 的 message_id,而 message_id 没有 is_checked=1

最佳答案

一般来说,当你使用left join时,第二个表的过滤条件应该放在on子句中,而不是where子句中。试试这个:

SELECT count(`lmh`.`message_history_id`) AS COUNT,
`lmh`.`message_id`
FROM `listing_message_history` `lmh` LEFT JOIN
`listing_messages` `lm`
ON `lmh`.`message_id` = `lm`.`message_id` AND
`lm`.`third_party_user` = 7
WHERE `lmh`.is_checked = 1
GROUP BY `lmh`.`message_id`;

此外,group by 应该使用第一个表,而不是第二个表。

关于php - 获取分别存在于另一个表中且具有空值的记录数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28628521/

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