Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Sql Abfrage über zwei Tabellen (https://www.delphipraxis.net/45881-sql-abfrage-ueber-zwei-tabellen.html)

kiar 13. Mai 2005 15:25

Datenbank: FireBird • Zugriff über: ibexpert

Sql Abfrage über zwei Tabellen
 
Hallo,

stehe gerade etwas neben mir :oops:

versuche eine Abfrage zu basteln, welche mir aus zwei Tabellen eine gemeinsame Spalte suchen soll.

erste Tabelle
* Id
* Plz
* Stadt

zweite Tabelle
* Vorwahl
* Stadt

folgendes habe ich versucht
SQL-Code:

SELECT  a.Id
       , a.Plz
       , a.Stadt
       , b.Vorwahl
       , b.stadt
FROM    Postleitzahlen a
         Left Join
         Import_Vorwahlen b
ON      a.Stadt = b.Stadt
keine Diskussion über Perfomance bitte. Ist ne einmalige Sache.

raik

Dax 13. Mai 2005 15:28

Re: Sql Abfrage über zwei Tabellen
 
Gehts vielleicht so?
SQL-Code:
SELECT  a.Id
       , a.Plz
       , a.Stadt
       , b.Vorwahl
       , b.stadt
FROM    Postleitzahlen a
       , Import_Vorwahlen b
WHERE   a.Stadt = b.Stadt

marabu 13. Mai 2005 16:13

Re: Sql Abfrage über zwei Tabellen
 
@kiar: Dein Code ist syntaktisch korrekt - was ist deine Frage?

marabu

kiar 13. Mai 2005 16:28

Re: Sql Abfrage über zwei Tabellen
 
hallo marabu,

dann ist die frage, warum er mir nicht die Städte anzeigt, welche in a und b mit den Kriterien über einstimmen.

raik

Jasocul 13. Mai 2005 16:50

Re: Sql Abfrage über zwei Tabellen
 
Eventuell ein Problem mit den Feldinhalten.
Hast du geprüft, ob Groß- und Kleinschreibung passt? ('KÖLN' <> 'Köln')
Gibt führende oder folgende Leerzeichen? ('Köln' <> 'Köln ')

kiar 13. Mai 2005 16:57

Re: Sql Abfrage über zwei Tabellen
 
hallo Peter, war ich auch der meinung.

habe dann folgende Anweisung gemacht:
SQL-Code:
Select b.Vorwahl, b.stadt, a.Stadt
from Import_Vorwahlen b
     join Postleitzahlen a on a.stadt like b.stadt

Where b.Stadt like '%Aschersleben%'
damit sollten zumindesten führenden und nachfolgende zeichen egal sein, oder bin ich da verkehrt.

und es ist definitiv, das Aschersleben in beiden tabellen vorhanden ist.

raik

marabu 13. Mai 2005 17:00

Re: Sql Abfrage über zwei Tabellen
 
Probier mal mit

SQL-Code:
select a.*, b.vorwahl from Postleitzahlen a, Import_Vorwahlen b where Upper(a.stadt) = Upper(b.stadt)
Bei korrekter Handhabung der COLLATION Klausel im DDL Statement müsste dann ein Ergebnis zu sehen sein. Im Gegensatz zu deinem Left Outer Equi Join ist das dann ein Natural Equi Join.

Viel Glück

marabu

kiar 13. Mai 2005 17:04

Re: Sql Abfrage über zwei Tabellen
 
hallo marabu,

Deine Anweisung bringt IBexpert zum Stillstand :mrgreen: .
Alle Felder sind Iso 8859_1 . und Upper hatte ich auch schon probiert.

raik

marabu 13. Mai 2005 17:14

Re: Sql Abfrage über zwei Tabellen
 
Das tut mir leid für dich. Ich habe deine Tabellen bei mir nachgestellt - Interbase OE. Funktioniert bestens. Wahrscheinlich hast du gar kein SQL Problem. Eine altes Windows-Motto sagt "Reboot tut gut".
Nur nebenbei: ich sagte COLLATION und du antwortest mit CHARACTER SET.

marabu

kiar 13. Mai 2005 18:09

Re: Sql Abfrage über zwei Tabellen
 
hallo ,

es liegt an den Werten in der Import_Vorwahlen.

Ich muss mir also die Konvertierung einer Textdatei zu einer Fdb-Tabelle noch mal durch den Kopf gehen lassen.


Dank an Alle

raik


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:15 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