Ik weet niet goed hoe ik het moet uitleggen, maar dit is de situatie:
tabel:
ID | naam | referentieID |
1 | A | 1 |
Hierop volgt een query wat lijkt op:
SELECT a.referentieID, b.*
FROM tabelA as a
LEFT JOIN tabelB as b
ON a.referentieID = b.referentieID
WHERE a.id = 1
ORDER BY b.iets ASC
Nu wil ik een route bepalen in dezelfde query:
tabel ziet er dan zo uit:
ID | naam | referentieID | referentieID2 |
1 | A | 1 | NULL |
2 | B | NULL | 1 |
met een idee qua code wat ik ongeveer zoek:
SELECT b.*, c.*, d,*
FROM tabelA as a
IF referentieID IS NOT NULL
LEFT JOIN tabelB as b
ON a.referentieID = b.referentieID
ELSE
LEFT JOIN tabelC as c
on a.referentieID2 = c.referentieID2
WHERE a.id = 2
ORDER BY c.iets ASC, c.anders
Is zoiets mogelijk?
- Er is dus een soort van IF statement in de query
- Er wordt gezocht op andere kolommen
- ORDER BY is ook anders afhankelijk van de situatie.