2016-08-24 97 views
0

我有一個MySQL內部連接查詢,我試圖用as關鍵字來簡化。簡化內部連接查詢

原始查詢:

SELECT u.user 
    , g.group 
    , b.type 
    , b.name 
    , b.count 
    , b.date 
    FROM profile.user u 
    JOIN profile.group g 
    ON g.GroupID = u.GroupID 
    JOIN main.set b 
    ON b.ID = u.GroupID 
GROUP 
    BY u.username 
    , u.GroupID 

簡化查詢:

# Returns user and ID 
select profile.user as user, 
     profile.group as group, 
     main.set as b 
    from user, 
    inner join group on group.ID = user.ID 
    inner join b on b.ID = user.ID 
    group by user.name 

錯誤:#1064 - 你在你的SQL語法錯誤;請查看與您的MySQL服務器版本對應的手冊,以獲取正確的語法。

+2

第一個查詢沒有意義;你有一個GROUP BY子句,但沒有聚合函數。 – Strawberry

+0

如果MySQL告訴你「你有一個錯誤...在第6行」 - 請看第5行。 –

回答

1
  1. 表別名出現在FROM部分。
  2. 列/字段別名出現在SELECT部分​​。
  3. 的schema.TableName是什麼在FROM,你原本可以別名爲表...

SELECT UM.username 
    , GM.GroupID 
    , B.Type 
    , B.BatchName 
    , B.Count 
    , B.Date 
FROM inno_Profiles.pUserMatch UM 
INNER JOIN inno_Profiles.pGroupMatch GM 
    on GM.GroupID = UM.GroupID 
INNER JOIN inno_donorsearch.batches B 
    on B.ID = UM.GroupID 
GROUP BY UM.username, UM.GroupID 
+0

我不確定這個小組是如何讓你們的,因爲你沒有任何聚合,因爲草莓在評論中指出。 – xQbert