我又来了另一个问题/问题。我知道这个主题的标题可能和其他人一样,但我注意到他们还有其他问题。SQL LEFT JOIN问题 - 错误结果
我有一个SQL LEFT JOIN的问题。我正在使用MySQL。
我想要一个表格,其中TYPES将会持续六个月并计算一个月(这可能看起来很奇怪,但我需要它来达到某种目的)。
我有两个查询(我会显示查询和输出,它会更具体)。
首先查询六个月:
SELECT objectsoort AS types, COUNT(objectsoort) AS total, prijs AS price, SUM(prijs)/ SUM(oppervlakte) AS meters
FROM `huislijn`
WHERE <clause statements>
GROUP BY objectsoort
而且我得到结果是这样的:
Six_months http://i56.tinypic.com/14ag1zs.png
第二个查询是一个月:
SELECT objectsoort AS types1, COUNT(objectsoort) AS total1, AVG(prijs) AS price1, SUM(prijs)/ SUM(oppervlakte) AS meters1
FROM `huislijn`
WHERE <clause statements>
GROUP BY objectsoort
然后我得到如下结果:
One month http://i53.tinypic.com/i20haa.png
我想让他们为一体,使我使用LEFT JOIN并获得查询这样的:
SELECT a.types1, b.total1, b.price1, b.meters1
FROM (SELECT objectsoort AS types1
FROM `huislijn`
WHERE <clause statements>) a
LEFT JOIN
(SELECT objectsoort AS types12, COUNT(objectsoort) AS total1, AVG(prijs) AS price1, SUM(prijs)/SUM(oppervlakte) AS meters1
FROM `huislijn`
WHERE <clause statements>) b
ON a.types1 = b.types12
GROUP BY types1
但结果不是我所期望的,因为应该有接近“公寓”的一些结果和“woning”的结果是不一样的查询一个月:
both in one http://i54.tinypic.com/20qcj8w.png
我再说一遍,这将是更清楚:我想类型的6个蒙的hs和一个月的计算。在这种情况下,这意味着结果应该接近'appartement'和'woning'。
所以,我想知道,也许我做错了什么。
感谢您的帮助和支持。
OMG。我发现问题在哪里。谢谢! 现在都很好。 ;) – Gereby
我的意思是在第三个查询中,对不起。连接表查询与您的第二个查询(缺少group by子句)不同。 – Jacob
请与我们分享您的问题+解决方案。如果合适,回答你自己的问题并接受答案。 :) –