Ik was bezig met een veel op veel JOIN. Ik kwam er achter dat dat toch behoorlijk lastig was.
Uiteindelijk ben ik er uit gekomen, maar ik wil toch wel even weten of dit de goede (beste) manier is:


SELECT
		users.name,
		messages.title
	FROM
		users
	INNER JOIN
		users_messages
		ON
			users.id = users_messages.userid
	INNER JOIN
		messages
		ON
			users_messages.messageid = message.id


Hierbij is het dus de bedoeling dat je alle users te zien krijgt, en alle titels van de berichten die hij heeft gemaakt.

En toen had ik meteen nog een vraag:
Als ik hierbij alleen bepaalde users wil zien. Dan maak ik een WHERE er achter aan:


WHERE users.name = 'Jan' OR users.name = 'Piet' OR users.name = 'Kees'


Ook dat werkt prima, maar als je nu 10 users wilt selecteren, dan wordt je query erg lang. Kan je op de een of andere manier niet zoiets doen:


WHERE users.name = ('Jan','Piet','Kees')


Dan is de WHERE clausule opeens veel kleiner.
Weet iemand hier een oplossing voor?

Alvast bedankt!
WHERE users.name IN ('Jan','Piet','Kees')
Je hebt hem al bijna goed:

WHERE users.name IN ('Jan', 'Piet', 'Kees')
@Klaasjan Boven en Blanche
Allebei bedankt. Dan zat ik er inderdaat in de buurt:D
Heel erg bedankt!

En wil er ook nog iemand kijken of mijn JOINS goed in elkaar zitten?
Als ze werken zitten ze goed in elkaar. Er valt zo op het eerste gezicht weinig over te zeggen omdat ik je datamodel niet ken...
Die ziet er nu zo uit (dit is testfase):

table Users:
name
id
...
...

Table users_messages
id
userid
messageid

Table Messages
id
title
inhoud
...

De puntjes zijn niet nuttig om hier te melden.

Reageren