2016-08-24 20 views
0

asキーワードを使用して簡略化しようとしているMySQL内部結合クエリがあります。内部結合クエリの簡略化

オリジナルクエリ:

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のは...あなたから、もともとの表のようにエイリアスすることができなかったに何があるか

です。

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