Mit MySql möchte ich mehrere Viele-zu-Viele-Tabellen (users_roles und roles_permissions) durch eine bestimmte Benutzer-ID verbinden. Aber etwas stimmt nicht mit meiner Abfrage, weil es einen Fehler wie folgt gibt.SQL JOIN mehrere Viele-zu-Viele-Tabellen
# 1054 - Unknown column 'users_roles.role_id' in 'on-Klausel'
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
innerhalb PHPMyAdmin Meine Tabellenstruktur wie folgt lautet:
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
Sie können die alte implizite und neue explizite Join-Syntax nicht mischen. –
Nun, Sie können alte und neue Syntax mischen, aber Sie besser nicht (die explizite Join ist restriktiver in Bezug auf welche Spalten in ON verwendet werden können): 'FROM users_roles Join Rollen ON users_roles.role_id = Rollen.ID JOIN roles_permissions ON roles_permissions.role_id = roles.id JOIN Berechtigungen ON roles_permissions.permission_id = permissions.id WHERE users_roles.user_id = 1' – dnoeth
Haben Sie einen Link, wo ich den "neuen" Syntax-Stil mit JOINS überprüfen kann? – CodeWhisperer