【发布时间】:2013-10-29 15:10:28
【问题描述】:
我有一个包含新闻项目的表,我还有另一个包含 media_types 的表,我想进行一个简单的查询,读取 media_types 表并计算每条记录有多少 news_items 存在。
结果将转换为我将用于图表的 json 响应,这是我的 SQL 语句
SELECT
gc.country AS "country"
, COUNT(*) AS "online"
FROM default_news_items AS ni
JOIN default_news_item_country AS nic ON (nic.id = ni.country)
JOIN default_country AS c ON (nic.country = c.id)
JOIN default_geo_country AS gc ON (gc.id = c.geo_country)
LEFT JOIN default_medias ON (m.id = ni.media)
WHERE TRUE
AND ni.deleted = 0
AND ni.date_item > '2013-10-23'
AND ni.date_item < '2013-10-29'
AND gc.country <> 'unknown'
AND m.media_type = '14'
GROUP BY gc.country
ORDER BY `online` desc LIMIT 10
这是我从 mysql 响应创建的 json 响应
[
{"country":"New Zealand","online":"7"},
{"country":"Switzerland","online":"1"}
]
如何像这样将打印和社交数据添加到我的输出中
我希望 json 响应看起来像这样
[
{"country":"New Zealand","online":"7", "social":"17", "print":"2"},
{"country":"Switzerland","online":"1", "social":"7", "print":"1"}
]
我可以在 select 语句中使用count (*) 来做这样的事情吗
COUNT( * ) as online, COUNT( * ) as social, COUNT( * ) as print
是否有可能或者我必须执行几个 SQL 语句来获取我正在寻找的数据?
【问题讨论】: