Ik heb een lastige query in de maak waarbij ik drie tabellen wil combineren en een voorwaarde wil stellen. Uit mijn database wil ik een resultaten die zowel voorkomen in de ene tabel (tabel1.titel) als in de andere (tabel 2.titel). De voorwaarde is dat de inzender van de titel niet een bepaalde persoon is (tabel3.user != inzender).

Met een INNER JOIN kan ik de eerste twee tabellen vergelijken en krijg ik de juiste resultaten. Maar als ik een derde JOIN toevoeg voor tabel drie, met een WHERE voor de voorwaarde, krijg ik een lijst terug waarin de resultaten die niet aan de voorwaarde voldoen, dubbel worden getoond. Ik begrijp - ongeveer - waarom dat is, maar weet niet hoe ik het moet oplossen.

Dit is de query:

$sql = "SELECT tabel1.titel
	FROM tabel1 INNER JOIN tabel2
	ON tabel1.titel = tabel2.titel 
	INNER JOIN tabel3
	ON tabel2.titel = tabel3.titel
	WHERE (tabel3.user != '$inzender')
	ORDER BY title ASC
	";


Als ik SELECT DISTINCT doe, krijg ik wel unieke resultaten, maar uitgerekend ook de resultaten die juist niet aan de voorwaarde voldoen.

Wie weet raad? Dankdank

Reageren