gpt4 book ai didi

mysql - LEFT OUTER JOIN 没有显示所有行?

转载 作者:行者123 更新时间:2023-12-01 00:04:55 25 4
gpt4 key购买 nike

我正在尝试使用一个使用连接的 SQL 语句从 2 个表中获取数据。这个想法很简单。一个项目有参与者,在项目概览中我想显示项目信息和参与者数量。

目前有 2 个项目,一个项目有参与者,另一个项目没有参与者。

我使用这个查询:

SELECT SQL_CALC_FOUND_ROWS `p`.`id`,
`p`.`title`,
`p`.`live`,
`p`.`startDate`,
`p`.`endDate`,
COUNT(`part`.`id`) AS `participants`
FROM `projects` `p`
LEFT OUTER JOIN `participants` `part`
ON `p`.`id` = `part`.`projectid`
ORDER BY `p`.`live` DESC,
`p`.`startDate` DESC
LIMIT 0,10

问题是,这个查询只返回有参与者的项目,而没有参与者的项目被排除在外。

我在这里做错了什么?

最佳答案

你必须使用GROUP BY

SELECT SQL_CALC_FOUND_ROWS `p`.`id`,
`p`.`title`,
`p`.`live`,
`p`.`startDate`,
`p`.`endDate`,
COUNT(`part`.`id`) AS `participants`
FROM `projects` `p`
LEFT OUTER JOIN `participants` `part`
ON `p`.`id` = `part`.`projectid`
GROUP BY `p`.`id`,
`p`.`title`,
`p`.`live`,
`p`.`startDate`,
`p`.`endDate`
ORDER BY `p`.`live` DESC,
`p`.`startDate` DESC
LIMIT 0,10

这是 SQLFiddle 演示

关于mysql - LEFT OUTER JOIN 没有显示所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17693268/

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