我有一个食谱表,我想为每个食谱显示每周价值。这些值是为他们投票的。我的问题是,我希望在我的数据库上创建一个类似excel的表,并为每个配方添加一个列,并在该列的周五放置它的值(如果存在任何值)。
现在显然最简单的连接不起作用所以我写了两个查询:一个用于获取我的食谱的所有ID,一个用于显示的值。第一个(MySql)查询只是来自食谱的选择ID,第二个是这样的:
select d.date,perc from
(SELECT date FROM weekly where YEAR(date)=2014 group by date) as d
left join weekly on d.date = weekly.date and weekly.id_rec= :idrec
知道如何合并这两个查询吗?运行两个查询会使一切变慢,但是当我尝试合并它们时,我没有得到正确的结果。
数据: sql fiddle
结果应该是这样的:
Dates | Recipe A | Recipe B | ...
Date 1 | 0.005 | 0.11 |
Date 2 | 0 | 0 |
Date 3 | 0 | 0.1 |
请注意,配方A和B不存在日期2,但对于其他一些操作则不存在。
答案 0 :(得分:1)
您应该能够合并这两个查询:
SELECT recipes.id, votes.date, votes.perc FROM recipes
RIGHT JOIN
(select weekly.id_rec, d.date, perc from
(SELECT weekly.id_rec, date FROM weekly where YEAR(date) = 2014 group by date) as d left join weekly on d.date = weekly.date) as votes
ON votes.id_rec = recipes.id