Vinzenz Mai: mysql: wo kann ich IF einsetzen?

Beitrag lesen

Hallo Susi,

[CODE]
SELECT g.id AS 'game_id', e.uid AS 'event_id', a.uid AS 'article_id'
FROM game g
LEFT JOIN event e ON g.event = e.id
LEFT JOIN article a ON g.article = a.id
WHERE g.id = '1'
[CODE]
es kann jedoch nur der eine oder der andere gesetzt sein!
also ...
wenn kein event dann ist ein artikel gesetzt und vice versa ...

Du möchtest also _keinen_ LEFT JOIN verwenden, sondern einen INNER JOIN und zusätzlich die Ergebnisse zweier Abfragen miteinander vereinigen. Dazu kannst Du seit MySQL 4.0 UNION nutzen.

SELECT g.* FROM game g IF(g.event=0 OR g.event='') JOIN MIT 'event'-table ELSE JOIN MIT 'article'-table

IF in MySQL-SQL ist nicht mit der bedingten Ausführung in prozeduralen Programmiersprachen gleichzusetzen - es arbeitet anders.

Freundliche Grüße

Vinzenz