Hoi mede phpers,

mySQL 4.0 ondersteund geen subquery's heb ik vernomen. In plaats daarvan zou je JOINS moeten gebruiken. Deze werken perfect voor mij tot nu toe. Maar nu heb ik een query die omgezet moet worden naar mySQL en 2 subquery's heeft. Geen probleem dacht ik meteen, gewoon een JOIN in een JOIN doen. Maar dat blijkt dus niet te werken. Mijn query ziet er ongeveer zo uit:

SELECT veld1.*
FROM veld1
WHERE veld1.id IN (
SELECT veld2.id
FROM veld2
WHERE veld2.id IN (
SELECT veld3.id
FROM veld3))

En mijn vraag is natuurlijk, hoe zet ik zoiets om naar mySQL?

Bij voorbaad dank,

Martijn
Een subquery is zeker geen join en ook niet goed te vergelijken

nou kan je met een subquery wellicht een join nabootsen andersom kan het zeker niet

bij een subquery selecteer je op basis van een andere selectie...

bij een join koppel je tabellen aan elkaar

een typisch voorbeeld van een join

select * from contactpersonen c, bedrijven b where c.bedrijfID = b.bedrijfID

(een zogenaamde straight join)

of

select * from contactpersonen left join bedrijven on contactpersonen.bedrijfID = bedrijven.bedrijfID

een left join
het verschil hierbij is dat je het volgende vraagt...
geef alles van contactpersonen en als er iets relevants is ook van bedrijven ...

terwijl de straight join zegt dat er een overeenkomst moet bestaan hoeft dit niet bij de left join ..

laat ff de precieze query zien dan kan ik je wellicht een stukje verder helpen ..

Mvg,

peanuts
Bedankt voor de informatie. Ik heb zelf nog wat geprobeerd met contactpersonen.bedrijfID = bedrijven.bedrijfID zoals in het voorbeeld. Mijn query werkt nou wel maar is alleen enorm traag. Dit komt waarschijnlijk door de vele joins. Daarom heb ik besloten om 2 verschillende query's te gebruiken het het probleem op te lossen in php.

bedankt voor de hulp peanuts

Reageren