Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Join in pgSQL? (https://www.delphipraxis.net/53406-join-pgsql.html)

alcaeus 15. Sep 2005 16:59

Datenbank: pgSQL • Version: egal • Zugriff über: php-Funktionen

Join in pgSQL?
 
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? :gruebel:

Greetz
alcaeus

[edit]Offene Frage[/edit]

Union 15. Sep 2005 17:11

Re: Join in pgSQL?
 
Im Handbuch sind die Befehle aufgelistet, auch JOIN gehen.
PostgreSQL Das Offizielle Handbuch

alcaeus 15. Sep 2005 18:55

Re: Join in pgSQL?
 
Moin,

das sieht ja sehr gut aus :)
Ab welcher Version sind die Joins denn enthalten? In dem Script das ich hier vor mir habe (ist ca. 3 Jahre alt und eigentlich nicht von mir) wird noch mit der oben beschriebenen Variante gearbeitet, deshalb dachte ich die gibts nicht :stupid:

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz