【发布时间】:2018-04-09 12:14:07
【问题描述】:
我不知道为什么我的查询不能正常工作。 当我尝试显示 devices_count=0 的任何用户时,它不会显示。
这是我的查询:
SELECT `u`.`id` AS `usersId`, `u`.`id_user` AS `usersIdUser`, `u`.`name` AS `usersName`,
`u`.`postal` AS `usersPostal`, `u`.`city` AS `usersCity`,
`u`.`street` AS `usersStreet`, `g`.`name` AS `geographyName`,
`e`.`name` AS `expertsName`, `e`.`surname` AS `expertsSurname`,
`o`.`name` AS `ownersName`,
COUNT(`d`.`id`) AS `devices_count`
FROM `users` `u`
LEFT JOIN `devices` `d` ON `u`.`id` = `d`.`user_id`
LEFT JOIN `owners` `o` ON `d`.`comm_id`=`o`.`id`
LEFT JOIN `experts` `e` ON `d`.`expert_id`=`e`.`id`
LEFT JOIN `geography` `g` ON `u`.`voivod`=`g`.`id`
WHERE `d`.`expert_id` LIKE '%' AND `u`.`id` LIKE 3332
AND `u`.`voivod` LIKE '%' AND `u`.`city` LIKE "%" AND `u`.`status` LIKE '%'
GROUP BY `u`.`id`
HAVING COUNT(d.id) BETWEEN 0 AND 99999
ORDER BY devices_count ASC LIMIT 0, 20
ID 为 3332 的用户在数据库中,但安装了 0 个设备 (devices_count=0)。当然,如果不通过 WHERE 子句缩小结果范围,它仍然没有显示所有结果。所有字段和 JOINed 列都是必需的。
【问题讨论】:
-
请在标签中指定您使用的数据库
-
那是无效的标准 SQL。您使用的是哪个 DBMS?
-
您通常按您选择的列进行分组,除了那些作为设置函数的参数的列。