AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Join mit drei Tabellen
Thema durchsuchen
Ansicht
Themen-Optionen

Join mit drei Tabellen

Ein Thema von LogoPie · begonnen am 6. Jul 2004 · letzter Beitrag vom 6. Jul 2004
Antwort Antwort
Seite 1 von 2  1 2      
LogoPie

Registriert seit: 7. Okt 2003
106 Beiträge
 
Delphi 5 Professional
 
#1

Join mit drei Tabellen

  Alt 6. Jul 2004, 08:00
Habe folgenden Join in einer Query Komponente


SELECT ToDo-Liste.ToDoNr,Interessenten.Firma,Mitarbeiter.Anrede,Mitarbeiter.Name FROM ( ToDo-Liste LEFT JOIN Interessenten ON ToDo-Liste.IntNr = Interessenten.IntNr ) LEFT JOIN Mitarbeiter ON ToDo-Liste.MitarbeiterNr = Mitarbeiter.MitarbeiterNr Wo liegt mein Fehler ? Fehlermeldung im Anhang.
Miniaturansicht angehängter Grafiken
fehler_191.jpg  
Used Advantage Database Server
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

Re: Join mit drei Tabellen

  Alt 6. Jul 2004, 08:09
Was für ne Datenbank?
Versuch's mal so:
SQL-Code:
SELECT
  ToDo-Liste.ToDoNr,
  Interessenten.Firma,
  Mitarbeiter.Anrede,
  Mitarbeiter.Name
FROM ToDo-Liste LEFT JOIN Interessenten USING (IntNr)
  LEFT JOIN Mitarbeiter USING (MitarbeiterNr)
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Join mit drei Tabellen

  Alt 6. Jul 2004, 08:11
Probier mal das:
Code:
SELECT "ToDo-Liste".ToDoNr,Interessenten.Firma,Mitarbeiter.Anrede,Mitarbeiter.Name FROM ( "ToDo-Liste" LEFT JOIN Interessenten ON "ToDo-Liste".IntNr = Interessenten.IntNr ) LEFT JOIN Mitarbeiter ON "ToDo-Liste".MitarbeiterNr = Mitarbeiter.MitarbeiterNr
bzw. statt " -> ', " -> ´, " -> ´, " -> []

Generell ist es schlecht einen Bindestrich als Bestandteil eines Tabellen/Feldnamens zu verwenden, da beim Parsern des SQL-Statesments diese Bezeichner "geklammert" werden müssen, damit der SQL-Parser diesen Bindestrich nicht als Operator (Feld1 - Feld2) betrachtet.
  Mit Zitat antworten Zitat
LogoPie

Registriert seit: 7. Okt 2003
106 Beiträge
 
Delphi 5 Professional
 
#4

Re: Join mit drei Tabellen

  Alt 6. Jul 2004, 08:28
Ich Benutze den Advantage Database Server, steht aber auch in meiner Signatur.

Der erste Vorschlag funktioniert ebenfals nicht. Vielleicht liegt an der Anweisung USING.
Ich weiß nicht ob ADS damit zurecht kommt.Folgende Fehlermeldung
Miniaturansicht angehängter Grafiken
f1.jpg  
Used Advantage Database Server
  Mit Zitat antworten Zitat
LogoPie

Registriert seit: 7. Okt 2003
106 Beiträge
 
Delphi 5 Professional
 
#5

Re: Join mit drei Tabellen

  Alt 6. Jul 2004, 08:33
Vorschlag 2 SELECT "ToDo-Liste".ToDoNr,Interessenten.Firma,Mitarbeiter.Anrede,Mitarbeiter.Name FROM ( "ToDo-Liste" LEFT JOIN Interessenten ON "ToDo-Liste".IntNr = Interessenten.IntNr ) LEFT JOIN Mitarbeiter ON "ToDo-Liste".MitarbeiterNr = Mitarbeiter.MitarbeiterNr scheint hinzuhauen, nur faselt er jetzt was von Invalid Operator
Miniaturansicht angehängter Grafiken
f2.jpg  
Used Advantage Database Server
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: Join mit drei Tabellen

  Alt 6. Jul 2004, 08:42
Zitat von LogoPie:
Habe folgenden Join in einer Query Komponente
SELECT ToDo-Liste.ToDoNr ....... Wo liegt mein Fehler ? Fehlermeldung im Anhang.
Du hast ein Minus-Zeichen in einem Tabellennamen verwendet!!
Das solltest du gleich ändern, da sonst der SQL-Parser ausgetrickst wird.
Man kann den Tabellennamen auch in doppelte Anführungszeichen setzen; ich würde dennoch
den Tabellennamen ändern, weil du sonst immer Stress hast.
Andreas
  Mit Zitat antworten Zitat
LogoPie

Registriert seit: 7. Okt 2003
106 Beiträge
 
Delphi 5 Professional
 
#7

Re: Join mit drei Tabellen

  Alt 6. Jul 2004, 09:04
So habe den Tabellennamen geändert. Aber der ist dennoch der gleiche geblieben.
SQL-Code:
SELECT ToDoListe.ToDoNr,Interessenten.Firma,Mitarbeiter.Anrede,Mitarbeiter.Name
FROM ( ToDoListe LEFT JOIN Interessenten ON ToDoListe.IntNr = Interessenten.IntNr )
LEFT JOIN Mitarbeiter ON ToDoListe.MitarbeiterNr = Mitarbeiter.MitarbeiterNr
Die Abfrage ist doch richtig oder nicht ? Kann beim besten willen keinen Fehler finden.
Used Advantage Database Server
  Mit Zitat antworten Zitat
LogoPie

Registriert seit: 7. Okt 2003
106 Beiträge
 
Delphi 5 Professional
 
#8

Re: Join mit drei Tabellen

  Alt 6. Jul 2004, 09:14
So habe den Tabellennamen geändert. Aber der ist dennoch der gleiche geblieben.
SQL-Code:
SELECT ToDoListe.ToDoNr,Interessenten.Firma,Mitarbeiter.Anrede,Mitarbeiter.Name
FROM ( ToDoListe LEFT JOIN Interessenten ON ToDoListe.IntNr = Interessenten.IntNr )
LEFT JOIN Mitarbeiter ON ToDoListe.MitarbeiterNr = Mitarbeiter.MitarbeiterNr
Die Abfrage ist doch richtig oder nicht ? Kann beim besten willen keinen Fehler finden.
Used Advantage Database Server
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#9

Re: Join mit drei Tabellen

  Alt 6. Jul 2004, 09:15
Zitat von LogoPie:
Die Abfrage ist doch richtig oder nicht ? Kann beim besten willen keinen Fehler finden.
Ja, es ist eine fehlerfreie SQL-92 Abfrage. Aber lass mal die runden Klammern weg; möglicherweise
ist ADS an dieser Stelle nicht auf Klammern vorbereitet.
Ein "schlaues" DBMS entscheidet selber welchen Join er zuerst durchführt. Eine "dumme" Datenbank
wie z.B. M$ Access (Jet Engine 4) beschwert sich, wenn die Klammern fehlen.
Andreas
  Mit Zitat antworten Zitat
LogoPie

Registriert seit: 7. Okt 2003
106 Beiträge
 
Delphi 5 Professional
 
#10

Re: Join mit drei Tabellen

  Alt 6. Jul 2004, 09:24
SQL-Code:
SELECT ToDoListe.ToDoNr,Interessenten.Firma,Mitarbeiter.Anrede,Mitarbeiter.Name
FROM ToDoListe LEFT JOIN Interessenten ON ToDoListe.IntNr = Interessenten.IntNr
LEFT JOIN Mitarbeiter ON ToDoListe.MitarbeiterNr = Mitarbeiter.MitarbeiterNr
So die Klammern sind nun weg, aber der Fehler "Invalid operand for operator =" ist immer noch der gleiche. Hab echt keine Idee woran es noch liegen könnte.
Used Advantage Database Server
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:04 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