Einzelnen Beitrag anzeigen

Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#1

Join in pgSQL?

  Alt 15. Sep 2005, 17:59
Datenbank: pgSQL • Version: egal • Zugriff über: php-Funktionen
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]
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat