Datenbankabfrage über 5 Tabellen funktioniert nicht

  • Mahlzeit,


    ich habe die nachfolgende Datenbankstruktur und Inhalte in "":




    Jetzt hätte ich gedacht, dass ich mit meiner nachfolgende Abfrage und der userid sowie dem permissionname ermitteln kann, ob der Nutzer die Berechtigung hat.


    SQL
    1. SELECT tab_permissions.name FROM tab_permissions, tab_groups, tab_users, tab_users_groups, tab_groups_permissions
    2. WHERE tab_users.id = 1
    3. AND tab_permissions.name = "permission1"
    4. AND tab_users.id = tab_users_groups.id_users
    5. AND tab_users_groups.id_groups = tab_groups_permissions.id_groups
    6. AND tab_groups_permissions.id_permissions = tab_permissions.id


    Warum bekomme ich 2x den permissionnamen angezeigt, wenn ich eine existierende userid eintrage, obwohl der Nutzer "keine Berechtigung hat"?

  • Es fehlte eine Verknüpfung. Hier die ganze funktionierende Abfrage:

    SQL
    1. SELECT tab_permissions.name FROM tab_permissions, tab_groups, tab_users, tab_users_groups, tab_groups_permissions
    2. WHERE tab_users.id = 1
    3. AND tab_permissions.name = "permission1"
    4. AND tab_users.id = tab_users_groups.id_users
    5. AND tab_users_groups.id_groups = tab_groups_permissions.id_groups
    6. AND tab_groups_permissions.id_permissions = tab_permissions.id
    7. AND tab_groups.id = tab_users_groups.id_group