gpt4 book ai didi

mysql - 如何在一个sql查询中有三个计数并在mySQL中显示3个单独的结果?

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

我有两张 table 。我的第一个表是animal_tbl,第二个表是animal_ate_tbl 和 food_type_tbl。

这是animal_tbl的可视化:

enter image description here

animal_ate_tbl:

enter image description here

食物类型_tbl

enter image description here

我想要一个查询来选择:animal_num、animal_fname+animal_lname、她吃的香蕉数、她吃的苹果数和她吃的 chico 数。我创建了自己的查询,但它输出了错误的结果。你能帮助我吗?我保证投票给能帮助我的人:))这是我得到的示例查询,但错误:

select
a.animal_num,
a.animal_fname,
a.animal_lname,
(
SELECT
COUNT(*)
FROM
animal_ate_tbl
WHERE
food_id = x22
group by
animal_id
) as banana,
(
SELECT
COUNT(*)
FROM
animal_ate_tbl
WHERE
food_id = x33
group by
animal_id
) as banana,
(
SELECT
COUNT(*)
FROM
animal_ate_tbl
WHERE
food_id = x44
group by
animal_id
) as chico
from
animal_tbl as a,
animal_ate_tbl
group by
a.animal_num = animal_id

但是,这应该是输出:

enter image description here

我保证我会给那些愿意回答的人投票。顺便说一句,该表只是我正在做的一个示例表。

最佳答案

试试这个:

SELECT 
A.animal_num,
CONCAT(IFNULL(A.animal_fname,''),' ', IFNULL(A.animal_lname,'')) fullName,
(SUM(IF(C.food_type='banana',1,0))) banana,
(SUM(IF(C.food_type='apple',1,0))) apple,
(SUM(IF(C.food_type='chico',1,0))) chico
FROM animal_tbl A LEFT JOIN animal_ate_tbl B
ON A.animal_nu=B.animal_id LEFT JOIN food_type_tbl C
ON B.food_id=C.food_id
GROUP BY A.animal_num,
CONCAT(IFNULL(A.animal_fname,''),' ', IFNULL(A.animal_lname,''));

关于mysql - 如何在一个sql查询中有三个计数并在mySQL中显示3个单独的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48933166/

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