我有一个如下所示的MySQL查询:

select `date`, `foo` from `readings`
where `item_id` = 1
and `date` between '2014-03-01' and '2014-03-30';


返回如下内容:

date        foo(item 1)
-----------------------
2014-03-01  2.24
2014-03-02  8.19
2014-03-03  9.63
etc


但是,我需要重复查询,因为我想列出许多项目的foo列,如下所示:

date        foo(item 1)    foo(item 2)    foo(item N)
-----------------------------------------------------


使选择查询“分组”许多where语句的最佳方法是什么?

到目前为止,我想到的唯一解决方案是使用不同的项目ID多次运行查询,然后在PHP中结合使用,但这似乎效率很低。

最佳答案

这个怎么样 ?

SELECT DATE,
CASE WHEN ITEM_ID = 1 AND DATE BETWEEN SO AND SO THEN FOO END AS FOO_1,
CASE WHEN ITEM_ID = 2 AND DATE BETWEEN SO AND SO THEN FOO END AS FOO_2,
CASE WHEN ITEM_ID = 3 AND DATE BETWEEN SO AND SO THEN FOO END AS FOO_3
.
.
FROM TABLE

关于mysql - 如何进行将许多where语句“分组”的选择查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23802238/

10-16 23:06