SQL query , lid van...

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Remco
  • Registratie: Januari 2001
  • Laatst online: 12-09 10:46
De titel is een beetje vaag, maar ik zou echt geen betere omschrijving weten.
Dus mod, als je er een weet, graag...

Ik heb het volgende probleem.
Er is een tabel personen. (tabel met contactpersonen)
Er is een tabel bedrijven. (tabel met bedrijven)
Er is een tabel mailinglists. (tabel met diverse mailinglijsten)
En een tabel mailinglist_keuzes. (tabel waarin ik de personen en bedrijven aan een mailinglist koppel.)

De layout van de tabel mailinglist_keuzes is als volgt:
code:
1
2
3
4
5
6
mailinglist_keuzes_id (int), mailinglist_id (int), persoon_id (int), bedrijf_id (int)

voorbeeld van data:
1,3,2,NULL
2,3,NULL,1
3,1,2,NULL

In deze tabel koppeling ik een mailinglist aan een bedrijf of persoon.
De velden persoon_id en bedrijf_id mogen daarom een NULL waarde bevatten.
Vanuit de tabel zijn een aantal relaties naar de id's van de desbetreffende bijbehorende tabellen.

Nu zit ik met een probleem waar ik maar niet uit kom.
Als ik de layout van een persoon in beeld heb wil ik graag zien welke mailinglists er zijn, met daarbij de mogelijkheid door middel van een checkbox de persoon lid te maken van meerdere mailinglists. Op zich geen probleem totdat ik een persoon wil wijzigen.
Dan wil ik graag weer de hele lijst met mailinglists zien, en daar waar het persoon al lid van is gemarkeerd met een checkbox. Dus niet wil ik alleen de mailinglists zien waar het persoon al lid van is, maar ook alle andere mogelijke mailinglists.

Wie kan mij op weg helpen waarop ik moet zoeken om zo'n query te maken.
Wat ik ook probeer, ik kom ook maar niet dicht in de buurt van dat wat ik wil hebben.

The best thing about UDP jokes is that I don't care if you get them or not.


Acties:
  • 0 Henk 'm!

Verwijderd

Je kunt hiervoor een LEFT JOIN gebruiken. Je selecteert alle mailinglists met een LEFT JOIN naar de tabel met personen, en in de WHERE clause natuurlijk ervoor zorgen dat je alleen de rijen van de huidige persoon terugkrijgt. Je resultaat bestaat uit alle rijen uit de maillinglists tabel, maar in het resultaat is de waarde van kolommen uit de personen tabel NULL als de persoon er geen lid van is.

Acties:
  • 0 Henk 'm!

  • Remco
  • Registratie: Januari 2001
  • Laatst online: 12-09 10:46
Yes, dank je ! _/-\o_
Het is maar dat je moet weten wat je moet zoeken !

The best thing about UDP jokes is that I don't care if you get them or not.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.