如果我跑我的查詢是這樣的:多個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