【发布时间】:2015-08-08 14:13:21
【问题描述】:
我有两个表用于存储图像及其相关的 exif 数据:
image_table 有如下记录:
(query: select * from image_table where order_id = 3030303)
image_exif_info 表有如下记录:
(query: select * from image_exif_info where
image_id in (select image_id from image_table where order_id = 3030303)
如第二个屏幕截图所示,我对Make 和Model 字段感兴趣。
我想做的是编写一个查询,它将向我显示这样的数据(报告):
Make Model # of photos
Canon CanonEOS 400D (200)
Nikon Nikon D3200 (120)
.... ..... ....
我知道我可以编写一个查询并循环遍历并进行计数等来获取此报告。但是,我正在努力提高我的 SQL 技能,因此我尝试使用单个查询来创建此报告。
到目前为止,我已经做到了这一点:
select distinct i.value,count(i.image_id) from image_exif_info i
where (i.key ='Make' or i.key = 'Model')
and i.image_id in (select image_id from image where order_id =303030)
group by value
上面查询的结果是:
Canon 200
CanonEOS 400D 200
Nikon 120
Nikon D3200 120
我希望它与我在上面 (REPORT) 下显示的内容相同
【问题讨论】:
-
鉴于您可以访问应用程序级代码,我很想在那里解决这个问题的“显示”部分,而不是使用数据透视查询。
标签: php mysql sql group-by aggregate-functions