如果我跑我的查询是这样的:多个JOIN和GROUP BY:我的查询有什么问题?
select
Sys.1,Sys.2,Sys.3,
DDD.a,DDD.b,DDD.c,
Gen.x,Gen.y,Gen.z
from sys_table Sys
join ddd_table DDD on (Sys.3=DDD.a)
join gen_table Gen on (DDD.a=Gen.x)
where
Sys.1 = 'string'
AND Sys.2 = 1
AND Sys.3 = 1
GROUP BY a
我得到一个错误“不明确的列名‘A’。
如果我指定喜欢这里的表:
select
Sys.1,Sys.2,Sys.3,
DDD.a,DDD.b,DDD.c,
Gen.x,Gen.y,Gen.z
from sys_table Sys
join ddd_table DDD on (Sys.3=DDD.a)
join gen_table Gen on (DDD.a=Gen.x)
where
Sys.1 = 'string'
AND Sys.2 = 1
AND Sys.3 = 1
GROUP BY DDD.a
我得到的错误:列“sys_table.1”在选择列表中无效,因为它不包含聚合函数或GROUP BY子句。
我错过了什么?
您修复了一个语法错误,并发现另一个被第一个隐藏。正如你的错误信息所说,如果你'SELECT a,b,c'那么你不能只是'GROUP BY a',你需要'GROUP BY a,b,c'或'SELECT a,SUM(b) ,SUM(c)'。你能举例输入和输出数据,足以证明你想要完成的行为吗? – MatBailie
如果没有组,我会收到6行,其中包含2个不同的数据。所以例如2行相同的数据,4行相同的数据。我想要两行,每行一行,这意味着我需要1行/'DDD.a'值。明白了吗? – fishmong3r
请。显示。一些。例。数据。输入和输出? – MatBailie