[MySQL] simpele JOIN met 2 tabellen

Pagina: 1
Acties:

  • Mr-Leo
  • Registratie: Oktober 2001
  • Laatst online: 18-05 16:01
Ik ben al een hele tijd aan het klooien met een (volgens mij) simpele JOIN. Ik heb al meer gezocht maar kan eigelijk geen duidelijk antwoord vinden. Kan wel een beetje SQL maar nie zo heel goed :)

Omschrijving:

- tabel1 heeft een veld 'userid'
- tabel2 heeft een veld 'id'
de data in de velden zijn in beide tabellen gelijk. (relatie)

Nou wil ik het volgende: van alle records uit tabel1 moet hij uit tabel2 het veld 'email' selecteren. hiervoor kan dus 'userid' en 'id' als relatie worden gebruikt

  • Eskimootje
  • Registratie: Maart 2002
  • Laatst online: 14:28
SELECT email
FROM tabel2
WHERE id IN (SELECT userid FROM tabel1)

alleen is dit ms-sql :/ volgens mijn mag je geen subqueries in mysql

Verwijderd

hmm praten we hier over een JOIN of over 2 tabellen waarbij de data gelijk is en gekoppeld kan worden middels de userid <-> id ???

in geval van een 1 op 0 of meer relatie...

SELECT tabel2.email FROM tabel1 LEFT JOIN tabel2 ON tabel1.userid = tabel2.id;

in geval van 1 op 1 relatie...

SELECT tabel2.email FROM tabel1, tabel2 WHERE tabel1.userid = tabel2.id;

Verwijderd

Eskimootje schreef op 13 oktober 2002 @ 20:40:
SELECT email
FROM tabel2
WHERE id IN (SELECT userid FROM tabel1)

alleen is dit ms-sql :/ volgens mijn mag je geen subqueries in mysql
dit kan niet in MySQL wel in versie 4 overigens.....

zie mijn post eerder hoe je dat oplost :)

  • Mr-Leo
  • Registratie: Oktober 2001
  • Laatst online: 18-05 16:01
userid en id zijn uniek en gelijk in beide tabellen jah !

Dus Henk die heeft userid='5' in tabel1, zijn email staat dus in tabel2 bij id='5'

  • Mr-Leo
  • Registratie: Oktober 2001
  • Laatst online: 18-05 16:01
Caesium bedankt! je eerste query werkt perfect, precies wat ik zocht. thx !

Verwijderd

let goed op hoe je relaties zijn gedefineerd....

zoals ik al aan gaf...

heb je een 1 op 1 relatie dan lijkt mij de laatste oplossing meer voor de hand liggen.. heb je een 1 op 0 of meer relatie dan de eerste...

het verschil (voor de zekerheid even uit leggen):

1 op 1:
Er moet zo wel 1 row met 1 veld hetzelfde zijn als in de andere tabel

bij 1 op 0 of meet
Bij elke row wordt er gekeken of de tabel die joint aan de opgegeven veld aan voldoet doet ie dit niet dan geeft ie NULL waarden retour maar geeft wel velden van de eerste tabel retour

ik hoop dat het zo wat duidelijker is
Pagina: 1