AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi PostgreSQL - Abfrage aus 2 Tabellen
Thema durchsuchen
Ansicht
Themen-Optionen

PostgreSQL - Abfrage aus 2 Tabellen

Ein Thema von NetSonic · begonnen am 27. Aug 2008 · letzter Beitrag vom 27. Aug 2008
Antwort Antwort
Seite 2 von 3     12 3      
Trigger2003

Registriert seit: 14. Jun 2006
36 Beiträge
 
Delphi 12 Athens
 
#11

Re: PostgreSQL - Abfrage aus 2 Tabellen

  Alt 27. Aug 2008, 14:25
Zitat von NetSonic:
Die Testdaten sind in Ordnung. Bei einem normalen Select zeigt er mir ja auch die "GroupID" an. Daran kann es nicht liegen
Sorry, will ja nicht klugsch..., aber das reine Vorhandensein der Spalte GroupID ist kein Argument. Entscheidend ist, daß zu den Werten in tbladress.GroupID auch entprechende Einträge in tbladress_group.GroupID vorhanden sind. Oder meintest Du das?
  Mit Zitat antworten Zitat
NetSonic

Registriert seit: 10. Mai 2007
124 Beiträge
 
Delphi 10 Seattle Professional
 
#12

Re: PostgreSQL - Abfrage aus 2 Tabellen

  Alt 27. Aug 2008, 14:31
Zitat von Trigger2003:
Sorry, will ja nicht klugsch..., aber das reine Vorhandensein der Spalte GroupID ist kein Argument. Entscheidend ist, daß zu den Werten in tbladress.GroupID auch entprechende Einträge in tbladress_group.GroupID vorhanden sind. Oder meintest Du das?
Die Tabellen enthalten die folgenden Werte:

tbladress
--------------------------
AdressNo + GroupID + Name1
--------------------------
1000 + 1 + TestA
1001 + 1 + TestB
1005 + 2 + TestC
1009 + 1 + TestD

tbladress_groups
-------------------
GroupID + GroupName
-------------------
1 + Autoren
2 + Admins

Meiner Ansicht nach, sind also alle Werte vorhanden. Nur das Select-Statement hat einen Fehler... den ich nicht finde!
  Mit Zitat antworten Zitat
Trigger2003

Registriert seit: 14. Jun 2006
36 Beiträge
 
Delphi 12 Athens
 
#13

Re: PostgreSQL - Abfrage aus 2 Tabellen

  Alt 27. Aug 2008, 14:33
Nur 'ne Idee:

Da GroupID in beiden Tabellen enthalten ist, würde ich's mal aus Gründen der Eindeutigkeit mit Alias versuchen, wie mirage das schon angeregt hat:

SQL-Code:
SELECT      
ta.*,
tag.GroupName
FROM tbladress ta
LEFT OUTER JOIN tbladress_groups tag ON tag."GroupID" = ta."GroupID"
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#14

Re: PostgreSQL - Abfrage aus 2 Tabellen

  Alt 27. Aug 2008, 14:34
Mal von vorn:
SQL-Code:
SELECT A.AdressNo, A.Name1, G.Groupname
FROM tbladress A
LEFT JOIN tbladress_groups G ON G.GroupdID = A.GroupID
[edit] Zu langsam [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
NetSonic

Registriert seit: 10. Mai 2007
124 Beiträge
 
Delphi 10 Seattle Professional
 
#15

Re: PostgreSQL - Abfrage aus 2 Tabellen

  Alt 27. Aug 2008, 14:46
SQL-Code:
SELECT A."AdressNo", A."Name1", G."GroupName"
FROM tbladress A
LEFT JOIN tbladress_groups G ON 'G."GroupID"' = A."GroupID"
Führt zu folgendem Ergebnis:

AdressNo + Name1 + GroupName
----------------------------
1001 + TestA +
1002 + TestB +
1005 + TestC +
1009 + TestD +

Das Feld "GroupName" ist LEER!
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#16

Re: PostgreSQL - Abfrage aus 2 Tabellen

  Alt 27. Aug 2008, 14:49
Sicher, dass da Gänsefüßchen hinmüssen? In meinem Buch über PostgreSQL sind keine aufgeführt. Und die Join-Bedingung ist auch geklammert, aber ansonsten genauso wie hier dargestellt...
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Trigger2003

Registriert seit: 14. Jun 2006
36 Beiträge
 
Delphi 12 Athens
 
#17

Re: PostgreSQL - Abfrage aus 2 Tabellen

  Alt 27. Aug 2008, 14:51
Zitat von NetSonic:
SQL-Code:
SELECT A."AdressNo", A."Name1", G."GroupName"
FROM tbladress A
LEFT JOIN tbladress_groups G ON 'G."GroupID"' = A."GroupID"
Ähm, woher kommen die single quotes um G."GroupID"?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#18

Re: PostgreSQL - Abfrage aus 2 Tabellen

  Alt 27. Aug 2008, 14:51
Ich habe keine Ahnung von PostgreSQL, aber in Firebird wird der Feldname bei der Verwendung von Gänsefüßchen case-sensitive ausgewertet. Vielleicht liegt hier der Fehler?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
NetSonic

Registriert seit: 10. Mai 2007
124 Beiträge
 
Delphi 10 Seattle Professional
 
#19

Re: PostgreSQL - Abfrage aus 2 Tabellen

  Alt 27. Aug 2008, 15:02
Ooooooooops... Ich habe den Fehler gefunden!
Das Feld "GroupID" in der Tabelle "tbladress" war vom Typ "character" während in der Tabelle "tbladress_groups" das Feld "GroupID" vom Typ "integer" ist. Das kann ja auch nicht wirklich gehen. Manchmal ist man echt auf beiden Augen doof...

Zitat von Trigger2003:
Ähm, woher kommen die single quotes um G."GroupID"?
Postgre meckert sonst, dass er den Feldnamen nicht kennt! Deswegen die "" um den Feldnamen.
Danke für Eure Mühe und Geduld!

  Mit Zitat antworten Zitat
Trigger2003

Registriert seit: 14. Jun 2006
36 Beiträge
 
Delphi 12 Athens
 
#20

Re: PostgreSQL - Abfrage aus 2 Tabellen

  Alt 27. Aug 2008, 15:05
Zitat von DeddyH:
Ich habe keine Ahnung von PostgreSQL, aber in Firebird wird der Feldname bei der Verwendung von Gänsefüßchen case-sensitive ausgewertet. Vielleicht liegt hier der Fehler?
Habe auch keine Ahnung von PostgreSQL, deshalb hier geklaut aus:
PostgreSQL SQL Syntax


Here are a few examples of both valid and invalid names:
  • my_table -- valid
    my_2nd_table -- valid
    échéanciers -- valid: accented and non-Latin letters are allowed
    "2nd_table" -- valid: quoted identifier
    "create table" -- valid: quoted identifier
    "1040Forms" -- valid: quoted identifier
    2nd_table -- invalid: does not start with a letter or an underscore

Double quotes um Feldnamen scheinen also erlaubt zu sein.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz