gpt4 book ai didi

MySQL - 连接和计算另一个表中的行

转载 作者:行者123 更新时间:2023-11-29 18:38:28 24 4
gpt4 key购买 nike

我有 3 张 table ,例如:
父级(id,名称)
children(id、数据、parent_id、时间戳)
table_votes(id, user_id, child_id)

我想从 children 表中获取具有特定 parent_id 的所有行,同时显示每个行在 table_votes 中出现的次数。

我尝试了类似以下的操作,但似乎不起作用,我想我错过了 children 中在 table_votes 中没有条目的所有行

SELECT  
`children`.`id`,
`children`.`data`,
`children`.`parent_id`,
`children`.`timestamp`,
COUNT(`v`.`children_id`)
FROM `children` LEFT JOIN `table_votes` `v` ON `children`.`id` = `v`.`child_id`
WHERE `children`.`parent_id` = 20 ORDER BY `timestamp` ASC

有什么提示我做错了什么吗?

提前谢谢

最佳答案

有几种可能的选择,其中之一:

SELECT * ,
(SELECT count(*)
FROM `table_votes`
WHERE `children`.`id` = `table_votes`.`child_id`) AS `Count`
FROM `children`
WHERE `parent_id` = 20

您也可以使用查询,但必须添加GROUP BY:

SELECT  
`children`.`id`,
`children`.`data`,
`children`.`parent_id`,
`children`.`timestamp`,
COUNT(`v`.`children_id`)
FROM `children` LEFT JOIN `table_votes` `v` ON `children`.`id` = `v`.`child_id`
WHERE `children`.`parent_id` = 20
GROUP BY `children`.`id`, `children`.`data`, `children`.`parent_id`, `children`.`timestamp`,
ORDER BY `timestamp` ASC

关于MySQL - 连接和计算另一个表中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45087565/

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