MySqlを使用して、指定されたユーザIDで複数の多対多テーブル(users_rolesおよびroles_permissions)に参加したいと思います。 しかし、以下のようなエラーが出るので、私の質問には何か問題があります。SQL JOIN複数の多対多テーブル
#1054 - '句で' 不明な列 'users_roles.role_id'
SELECT roles.name, permissions.name
FROM users_roles, roles_permissions
JOIN roles ON users_roles.role_id = roles.id
JOIN permissions ON roles_permissions.permission_id = permissions.id
WHERE users_roles.user_id = 1 AND roles_permissions.role_id = roles.id
PHPMyAdminの内部の私のテーブル構造は以下の通りです:
Table users_roles
id | user_id | role_id
Table roles_permissions
id | role_id | permissions_id
Table roles
id | name | description
Table permissions
id | name | description
古い暗黙の結合構文と新しい明示的な結合構文を混在させることはできません。 –
さて、古い構文と新しい構文を混在させることはできますが、明示的な結合ではONで使用できる列に関してより限定的です: 'FROM users_roles JOIN roles ON users_roles.role_id = roles.id JOIN roles_permissions ON roles_permissions.role_id = roles.id JOINの権限を有効にするroles_permissions.permission_id = permissions.id WHERE users_roles.user_id = 1' – dnoeth
JOINSで「新しい」構文スタイルをチェックできるリンクがありますか? – CodeWhisperer