合并两个查询

时间:2015-01-30 22:36:30

标签: mysql sql

我有一个食谱表,我想为每个食谱显示每周价值。这些值是为他们投票的。我的问题是,我希望在我的数据库上创建一个类似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,但对于其他一些操作则不存在。

1 个答案:

答案 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

SQL Fiddle