我有一个品牌表和帖子表。
下面是他们的架构
品牌:
brand_id、friendly、short 、followers、created、location、brandID、handle、url、pic、utcOffset、posts、engagements、engagedUser 等(足以满足当前问题)
帖子:
post_id、brandID、postID、handle、posted、content、postType、comments等(对当前问题足够)
其中 postType= 链接、状态、视频、问题、投票等
现在,我使用以下查询对旋转进行了硬编码:
select b.friendly,
sum(case when p.postType='link' then 1 else 0 end) as 'link',
sum(case when p.postType='video' then 1 else 0 end) as 'video',
sum(case when p.postType='status' then 1 else 0 end) as 'status',
sum(case when p.postType='photo' then 1 else 0 end) as 'photo',
count(p.postType)
from brands b, posts p
where b.handle
in ('chevroletcanada','dodgecanada')
and p.handle=b.handle
and date(p.posted)
BETWEEN "2013-06-02" and "2013-08-11"
group by b.friendly
但在上面的查询中,我静态地使用了 postType 类型,即用于链接、状态、视频、照片。现在,如果将新的 postType 添加到 posts 表中,这将不起作用,因为我也必须更改查询。此外,如果 postType 中的现有值被删除,则也必须再次更改查询。
我的问题是如何动态地实现这一点,以便在帖子表中添加新的 postType 值(例如 tweet)时,tweet 也会显示在结果集中。删除任何 postType 也是如此。
如果您还没有理解问题,请告诉我。
我已阅读以下帖子,但无法弄清楚:
提前致谢!!