CentOS7 上の mysql Ver 14.14 Distrib 5.7.26, for Linux (x86_64) using EditLine wrapper
でコマンドラインより、
mysql
1SELECT 2 user.uid, 3 user.uname, 4 user.uauth, 5 group.gid, 6 group.gname, 7 group.sort 8FROM user 9 LEFT JOIN ( 10 SELECT 11 usergroup.uid uid, 12 grouping.gid gid, 13 grouping.gname gname, 14 grouping.sort sort 15 FROM grouping 16 LEFT JOIN usergroup ON grouping.gid = usergroup.gid 17 WHERE grouping.lid = '抽出するlid' 18 ) group ON user.uid = group.uid 19WHERE user.lid = '抽出するlid' 20ORDER BY user.uauth DESC, group.sort ASC, user.uid ASC;
を実行すると、
text
1ERROR 1064 (42000): You have an error in your SQL syntax; 2check the manual that corresponds to your MySQL server version for the right syntax to use near 3'group ON user.uid = group.uid WHERE user.lid = '抽出するlid' ORDER BY us' at line 18
となってしまいます。
エラー原因が構文エラーということで誤字、脱字の有無、MySQL のマニュアルやインターネットで類似エラーが無いか等を調べたのですが判りませんでした。
副問い合わせ部分のみ切り出して実行した場合にはエラーは発生しません。
LEFT JOIN + 副問い合わせ(と関連する)部分を除いて実行した場合にはエラーは発生しません。
組み合わせると上記エラーとなってしまいます。
上記 SQL 文の問題点および対策をご教示頂ければ幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/13 09:23
2020/05/14 04:35
2020/05/14 04:44
2020/05/14 04:57
2020/05/14 05:03