2016-08-24 87 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