Hallo,

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.

$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.
Door niet van dit soort queries te schrijven maar JOINs toe te passen. Zie je eerdere topics, dit soort queries is een enorme performance killer.

SELECT 
	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:

gebruiker_id
naam
rol_rol_id


Tabel rol:

rol_id
omschrijving

Reageren