我已经成功合并了3个表(使用ID),但是当我尝试添加第4个表时 - 输出完全失败(值变得不现实/错误),所以我认为我与这个事实有关,即第4张桌子已经取消了分组ID,所以我需要在加入这张新桌子之前对他们进行分组。眼下查询如下:在与另一个表合并之前按参数分组一个表
SELECT name, SUM(money) AS MONEY
FROM transactions
JOIN results ON transactions.id = results.id
JOIN more ON results.per_id = more.per_id
GROUP BY name
HAVING SUM(money)>500
,当我加入新表:
SELECT name, SUM(money) AS MONEY, SUM(data_from_NT1), SUM(data_from_NT2)
FROM transactions
JOIN results ON transactions.id = results.id
JOIN more ON results.per_id = more.per_id
JOIN newtable ON results.per_id = newtable.per_id
GROUP BY name
HAVING SUM(money)>500
是有可能通过per_id执行命令组:
(JOIN newtable ON results.per_id = newtable.per_id GROUP BY per_id)
前将这个新表添加到主表中?上面的行不起作用。如果小组per_id
,任何其他列,必须聚集
join (
select per_id
, sum(col1) as col1_avg
, avg(col2) as col2_avg
from newtable
group by
per_id
) as newtable
on results.per_id = newtable.per_id
:
新表与结果之间存在哪种类型的关系?新表中可能有0个,一个或多个记录?我问,因为在交易和结果中你的结果值会加倍,如果per_ID不存在于更多或新表中,某些记录可能会被删除。这可能是您想要使用LEFT连接而不是完整连接。一些数据与预期结果一起输出将有助于在这里找出问题。 – xQbert 2012-04-07 19:15:24