![]() |
Datenbank: MySQL • Version: 5 • Zugriff über: ZEOS
SQL bei JOIN gemeinsame Spalten nicht ausgeben
Hallo zusammen,
ich hab folgendes Problem: ich habe zwei Tabellen ----------------- Kunden ----------------- Spalten: ----------------- ID Name Nachname AdressID BearbeitetVon BearbeitungsDatum ----------------- ----------------- Adressen ----------------- Spalten: ----------------- ID Strasse Ort PLZ BearbeitetVon BearbeitungsDatum ----------------- jetz verknüpfe ich diese beiden mit einem Join damit ich die Kunden z.B. nach PLZ sortiert ausgeben kann. das Problem ist jetzt wenn ich in der WHERE - Klausel "BearbeitetVon" angebe kommt die Meldung das das Feld "zweideutig", was auch logisch erscheint. D.h. ich muss jetzt irgendwie das "BearbeitetVon" der Adressen-Tabelle nich anzeigen, da es aber in der Realen tabelle mehr als 40 Felder pro Tabelle sind ist es sehr umständlich diese explizit anzugeben, ale gibt es da bei JOIN vllt etwas was man angeben kann damit man doppelte Spalten "ausklammern" kann? MfG :angel: |
Re: SQL bei JOIN gemeinsame Spalten nicht ausgeben
IHMO bleibt dir nichts anders übrig als jede Spalte anzugeben :gruebel:
Aber falls es das doch geben sollte, wär ich auch dankbar für die Information :wink: Bye |
Re: SQL bei JOIN gemeinsame Spalten nicht ausgeben
:wall: :wall: :wall:
ich Idiot!! mein Problem ist ja garnicht das die Spalten ausgegeben werden, sondern das sie überhaupt existieren... Sorry an alle :oops: Nochmal, folgende Tabellen: ----------------- Kunden ----------------- Spalten: ----------------- ID Name Nachname AdressID BearbeitetVon BearbeitungsDatum ----------------- ----------------- Adressen ----------------- Spalten: ----------------- ID Strasse Ort PLZ BearbeitetVon BearbeitungsDatum ----------------- Wenn ich jetzt dieses SQL-Statement habe:
SQL-Code:
dann kommt der Fehler wegen der Zweideutigkeit.
SELECT k.*, a.* FROM Kunden AS k LEFT OUTER JOIN Adressen AS a
ON (k.AdressID = a.ID) WHERE (BearbeitetVon <> 1) Normalerweise würde ich ja ein "k." vor das "BearbeitetVon" setzen, das die WHERE-Klausel allerdings dynamisch in einem extra Modul erzeugt wird, hat dieses keine Ahnung von dem "k.". Aber jetzt weis ich noch weniger wie ich das machen muss :cry: |
Re: SQL bei JOIN gemeinsame Spalten nicht ausgeben
Schaue dir doch mal einfach die Docs von mySQL an.
Soweit ich weiß haben sie in ihren Online Docs auch eBNF Grammatiken für jede Art von Statement. Suche da einfach mal nach Table aliases und in den Grammatiken/Bleistiften wirst du sicher sehen können wie die Syntax für Aliase in mySQL ist. |
Re: SQL bei JOIN gemeinsame Spalten nicht ausgeben
SQL-Code:
SELECT k.*, a.PLZ, a.Ort, a.Strasse
FROM Kunden AS k LEFT OUTER JOIN Adressen AS a ON (k.AdressID = a.ID) WHERE (k.BearbeitetVon <> 1) Zitat:
|
Re: SQL bei JOIN gemeinsame Spalten nicht ausgeben
Zitat:
SQL-Code:
das funktioniert und den Tabellennamen zu übergeben sollte denke icha uch kein Problem sein.
SELECT Kunden.*, Adressen.PLZ, Adressen.Ort, Adressen.Strasse
FROM Kunden LEFT OUTER JOIN Adressen ON (Kunden.AdressID = Adressen.ID) WHERE (Kunden.BearbeitetVon <> 1) Hat jemand etwas was gegen diese Version spricht? Ansonsten mach ich das jetzt so :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:07 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