Hallo ihr,
ich brauche fuer ein Datenbankabfrage in php einen JOIN. In
mySQL ist dieser ja leicht zu realisieren:
SQL-Code:
SELECT p.*, pc.cache_data
FROM (
posts p
LEFT JOIN post_cache pc
ON p.post_id = pc.post_id
)
WHERE p.topic_id = <someid>
Da das Script aber auf verschiedenen Datenbanksystemen laufen soll (
mySQL,
MSSQL,
Access, pgSQL), muss das
SQL-Statement teilweise angepasst werden, v.a. fuer pgSQL. Allerdings habe ich in der Doku keinen Hinweis auf Join-Befehle gefunden. Ist es wahr, dass es dort diese nicht gibt? Ich koennte es zwar so machen:
SQL-Code:
SELECT p.*, pc.cache_data
FROM posts p, post_cache pc
WHERE p.topic_id = <someid>
AND p.post_id = pc.post_id
UNION (
SELECT p.*, NULL
FROM posts p
WHERE NOT EXISTS (
SELECT pc.post_id
FROM posts p, post_cache pc
WHERE p.topic_id = <someid>
AND p.post_id = pc.post_id
)
AND p.topic_id = <someid>
)
Um ehrlich zu sein gefaellt mir das
Query ueberhaupt nicht. Gibt es denn keine einfachere Variante als ueber UNION zu arbeiten?
Greetz
alcaeus
[edit]Offene Frage[/edit]