gpt4 book ai didi

php - 当所有数据都在一个表中时,MySQL连接多个sql结果

转载 作者:行者123 更新时间:2023-11-30 21:50:06 27 4
gpt4 key购买 nike

我有一个包含大量数据的表格,其中包含多个字段:

day (Monday ~ Sunday)
City (NY, LA, FL, etc.)

我想用 php 制作一个表格来显示这样的总数:

  --- Mon --- Tue --- Wed ...
NY 6 8 9
LA 7 5 3
FL 1 0 4

但是我在编写 SQL 来完成这项工作时遇到了问题。我使用过 union 但它在底部附加了结果,所以我似乎需要使用 inner join,或者甚至不需要。我可以远程接近我想要的两个查询是:

select city, count(id) as 'Monday' from <code>index</code> where city = "NY" and day = 'Monday' group by city
union all <br/>select city, count(id) as 'Monday' from <code>index</code> where city = 'LA' and day = 'Monday' group by city
union all <br/>select city, count(id) as 'Monday' from <code>index</code> where city = 'FL' and day = 'Monday' group by city

这会产生以下结果

  --- Mon
NY    6
LA     7
FL     1

问题是我不知道如何将剩余的日子添加到它的右边

我试过的另一个查询是
select a.day, a.counts as 'NY', b.counts as 'LA' from <br/>(select day, count(id) as counts from <code>index</code> where city='NY' GROUP BY DAY) as a <br/>left join <br/>(select day, count(id) as counts from <code>index</code> where city='LA' GROUP BY DAY) as b <br/>on (a.day = b.day) <br/>order by field (a.<code>day</code>, 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday')

这会产生以下结果

                 NY --- LA ---
Monday      6        7
Tuesday     8        5

这个的问题是应该交换行和列,而且我不知道如何添加另一个城市(我有很多城市)。

所有数据都在一个名为“索引”的表中。有人可以指导我如何编写 SQL 吗?当没有记录时,我还需要该字段显示 0 或 Null。最终目标是用 PHP 生成表格。

感谢您花时间阅读和回答。

最佳答案

您似乎想要按 day 对数据进行透视,并按 City 对数据进行分组。如果是这样,那么您可以尝试以下查询可能会有所帮助。

select city, 
sum(case when (day = 'Monday') then 1 else 0 end) 'Monday',
sum(case when (day = 'Tuesday') then 1 else 0 end) 'Tuesday',
sum(case when (day = 'Wednesday') then 1 else 0 end) 'Wednesday',
sum(case when (day = 'Thursday') then 1 else 0 end) 'Thursday',
sum(case when (day = 'Friday') then 1 else 0 end) 'Friday',
sum(case when (day = 'Saturday') then 1 else 0 end) 'Saturday',
sum(case when (day = 'Sunday') then 1 else 0 end) 'Sunday'

from `index` group by city

关于php - 当所有数据都在一个表中时,MySQL连接多个sql结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47673418/

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