这里的东西,我有表像这样LEFT JOIN 3次相同的表上的3倍条件的倍数导致
第一个
ID1 ID2 ID3
二
ID1 ID2 ID3 month, value
我需要的是为这3个ID的每个组合获得三个月的值,并且我这样去了:
SELECT a.ID1, a.ID2, a.ID3, b.value, c.value, d.value
FROM Table1 a
LEFT JOIN Table2 b
ON a.ID1 = b.ID1
AND a.ID2 = b.ID2
AND a.ID3 = b.ID3
WHERE month=2
LEFT JOIN Table2 c
ON a.ID1 = c.ID1
AND a.ID2 = c.ID2
AND a.ID3 = c.ID3
WHERE month=3
LEFT JOIN Table2 d
ON a.ID1 = d.ID1
AND a.ID2 = d.ID2
AND a.ID3 = d.ID3
WHERE month=4
而且我得到的值相乘。
任何想法为什么这种情况下,或任何其他方法的建议?
谢谢。
在我看来,你根本不需要'table1'来满足这个查询,因为输出中的所有信息也都在'table2'中。 – 2012-02-22 21:10:03
表1包含应计算结果的所有必需行,即使表2中没有值。 – 2012-02-22 21:16:39
好的,我看到了,我已更新我的答案 – 2012-02-22 21:19:54