Bedingte SQL Abfrage
Twilo
- datenbank
Hallo,
ich hab bis jetzt folgende SQL Abfrage
SELECT DISTINCT k._id, k._parent_id, k._art, k._name
FROM kommentare AS k
LEFT JOIN ereignis AS e ON k._parent_id = e._id
LEFT JOIN anzeige AS a ON k._parent_id = a._id
WHERE k._freigeschaltet = "1"
AND k._geloescht = "0"
AND
(
(
k._art = "ereignis"
AND e._geloescht = "0"
AND e._freigeschaltet = "1"
)
OR
(
k._art = "anzeige"
AND a._geloescht = "0"
AND a._freigeschaltet = "1"
AND a._vorgemerkt = "0"
)
)
ORDER BY k._datum DESC
LIMIT 10
nun bin ich am überlegen, wie ich folgendes noch unterbringen kann
er soll je nachdem, was k._art für ein Wert hat, _url von ereignis oder anzeige abrufen
wie muss ich das anstellen?
denn ich muss doch das Select am Anfang schreiben
ich bräuchte also, wenn k._art = ereignis ist e._url
und wenn k._art = anzeige ist a._url
geht soetwas überhaupt?
bzw. wie müsste die SQL-Abfrage aussehen?
mfg
Twilo
Huhu Twilo
wie muss ich das anstellen?
denn ich muss doch das Select am Anfang schreibenich bräuchte also, wenn k._art = ereignis ist e._url
und wenn k._art = anzeige ist a._urlgeht soetwas überhaupt?
Welche Datenbank benutzt Du denn?
Wenn es MySQL ist schau mal bei IF in der mysql-Doku.
Dein Statement könnte dann ungefähr so ausschauen
SELECT
[...]
IF (k._art = ereignis, e.url, a.url ) AS theURL
[...]
Man kann die IFs auch verschachteln.
Viele Grüße
lulu
Hallo,
wie muss ich das anstellen?
denn ich muss doch das Select am Anfang schreiben
ich bräuchte also, wenn k._art = ereignis ist e._url
und wenn k._art = anzeige ist a._url
geht soetwas überhaupt?
Welche Datenbank benutzt Du denn?
Wenn es MySQL ist schau mal bei IF in der mysql-Doku.
sorry, hab ich ganz vergessen zu erwähnen
bietet das nicht jede Datenbank an?
Dein Statement könnte dann ungefähr so ausschauen
SELECT
[...]
IF (k._art = ereignis, e.url, a.url) AS theURL
[...]
Man kann die IFs auch verschachteln.
super, funktioniert :-)
SELECT DISTINCT IF (k._art = "ereignis", e._url, a._url ) AS _url, k._id, k._setcard_id, k._art, k._name
FROM kommentare AS k
LEFT JOIN ereignis AS e ON k._parent_id = e._id
LEFT JOIN anzeige AS a ON k._parent_id = a._id
WHERE k._freigeschaltet = "1"
AND k._geloescht = "0"
AND
(
(
k._art = "ereignis"
AND e._geloescht = "0"
AND e._freigeschaltet = "1"
)
OR
(
k._art = "anzeige"
AND a._geloescht = "0"
AND a._freigeschaltet = "1"
AND a._vorgemerkt = "0"
)
)
ORDER BY k._datum DESC
LIMIT 10
mfg
Twilo