ユーザーをログオンすると、彼のクラスやチームなどの個人情報を取得したいと思います。私はクラスを取得することができましたが、私がチームを取得しようとすると動作しません。MySQLチェーン内部JOINエラー
私は3つのテーブル(ユーザー、チーム、クラス)と2つの結合テーブル(teams_usersとclasses_users)を持っています。以下
関係:
classes (id_classe) <--> classes_users (classe_id, user_id) <--> users (id_user)
teams (id_team) <--> teams_users (team_id, user_id) <--> users (id_user)
これは
SELECT * FROM classes `c`
INNER JOIN (SELECT * FROM classes_users `cu`
INNER JOIN (SELECT * FROM users WHERE (users.email = '[email protected]'))
`u` ON (u.id_user = cu.user_id))
`ui` ON (ui.classe_id = c.id_classe)
を働いていた。しかし、私はそれが機能しなかったの下に別の参加を追加しようとしたとき。
SELECT * FROM teams_users `tu`
INNER JOIN (SELECT * FROM classes `c`
INNER JOIN (SELECT * FROM classes_users `cu`
INNER JOIN (SELECT * FROM users WHERE (users.email = '[email protected]'))
`u` ON (u.id_user = cu.user_id))
`ui`ON (ui.classe_id = c.id_classe))
`wc` ON (wc.id_user = tu.user_id)
あなたのクエリのエラーは、WHERE(users.email = '[email protected]')の括弧であると思います。これで括弧を外すと、それが機能します。しかし、以下のゴードンの答えが最も簡潔な方法です – Ramesh