data uit andere tabel laden
Robert Jansen
07/08/2017 19:20:45Hallo,
Ik heb twee tabellen users en autorisatie.
In de tabel users staat naam enz. en een kolom autorisatie, dit is een int.
In de tabel autorisatie staan de tabellen auto_id en rol.
Een voorbeeld is:
users:
naam autorisatie
jan 1
piet 2
autorisatie:
auto_id rol
1 admin
2 webbeheer
Ik wil de tabel users selecteren, hierbij staat in kolom autorisatie een 1.
De bedoeling is dat hier dan admin of webbeheer komt te staan, dus dat je dan de rol uit de tabel autorisatie haalt.
Ik heb geprobeerd dit te maken met een subquery maar dit werkt niet. hij laat alleen een 1 zien.
Mijn vraag is: hoe kan ik de rollen uit tabel autorisatie halen en bij het selecteren van de tabel users dat er de rollen getoond worden i.p.v. cijfers?
alvast bedankt.
Ik heb twee tabellen users en autorisatie.
In de tabel users staat naam enz. en een kolom autorisatie, dit is een int.
In de tabel autorisatie staan de tabellen auto_id en rol.
Een voorbeeld is:
users:
naam autorisatie
jan 1
piet 2
autorisatie:
auto_id rol
1 admin
2 webbeheer
Ik wil de tabel users selecteren, hierbij staat in kolom autorisatie een 1.
De bedoeling is dat hier dan admin of webbeheer komt te staan, dus dat je dan de rol uit de tabel autorisatie haalt.
Ik heb geprobeerd dit te maken met een subquery maar dit werkt niet. hij laat alleen een 1 zien.
Code (php)
1
$query = "SELECT naam, autorisatie FROM users WHERE autorisatie IN (SELECT auto_id FROM autorisatie WHERE rol = 'admin')";
Mijn vraag is: hoe kan ik de rollen uit tabel autorisatie halen en bij het selecteren van de tabel users dat er de rollen getoond worden i.p.v. cijfers?
alvast bedankt.
PHP hulp
08/12/2024 13:26:59Ben van Velzen
07/08/2017 20:28:56Door niet van dit soort queries te schrijven maar JOINs toe te passen. Zie je eerdere topics, dit soort queries is een enorme performance killer.
Gewijzigd op 07/08/2017 20:35:12 door Ben van Velzen
Peter K
08/08/2017 09:04:55Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
SELECT
users.naam,
autorisatie.rol
FROM
users
INNER JOIN autorisatie
WHERE
users.autorisatie = autorisatie.auto_id
users.naam,
autorisatie.rol
FROM
users
INNER JOIN autorisatie
WHERE
users.autorisatie = autorisatie.auto_id
Je ziet echter wel dat het wat onduidelijk is door de opzet van je database.
Persoonlijk zou ik het als volgt doen:
Tabel gebruiker:
Tabel rol: