SQL Abfrage mit Where und and?

Test

Erfahrenes Mitglied
Was ist an dieser Abfrage falsch?

SELECT Lieferdatum,Seriennummer FROM Auslieferversionen where ([Auslieferversionen].[KD-Nr]=[Kunden].[Kd-Nr]) and ([Kunden].[Kunde]="RTL")

Fehlermeldung:
Syntaxfehler (fehlender Operator) in Abfrageausdruck '([Auslieferversionen].[KD-Nr]=[Kunden].[Kd-Nr]) and ([Kunden].[Kunde]=RTL)
 
Soweit ich das überblicke, hast du zwei Fehler gemacht:

1.
"-" für Feldnamen ist falsch oder zumindest unsauber. "-" ist ein Operator und sollte auch nur als solcher genutzt werden. Ob's direkt falsch ist, weiß ich jetzt nicht, da ich sowas nicht verwende.

2.
Abfrage über mehrere Tabellen funktionieren AFAIK in MySQL nur mittels JOINs. Ich glaube Sybase-SQL erlaubt verkettete SELECT-Anweisungen. Bei MySQL kenne ich das nicht und hab es auch nicht in meinem schlauen Buch gefunden.

Du solltest mal folgendes versuchen:
Code:
SELECT Lieferdatum, Seriennummer
FROM Auslieferversionen JOIN Kunden
WHERE Auslieferversionen.KD_Nr = Kunden.Kd_Nr AND Kunden.Kunde = "RTL"


EDIT: Die Verwendung der eckige Klammern erzeugt auch einen Fehler.


Gruß
Falk
 
Zuletzt bearbeitet:
Und sonst kannst du mal versuchen statt der doppelten Hochkommas einfache zu verwenden. Bei mir schreit der MsSQL Server immer bei doppelten ..
 
SELECT Lieferdatum, Seriennummer, Kunden
FROM Auslieferversionen
JOIN Kunden
ON Auslieferversionen.[KD-Nr]=Kunden.[Kd-Nr]
WHERE Kunden.Kunde = "RTL"

Auch wenn du eigentlich wirklich kein Minus in Tabellennamen verwenden solltest - die eckigen Klammern sind dazu da, dass Tabellennamen mit solchen Zeichen trotzdem als Tabellennamen erkannt werden.
 
Zuletzt bearbeitet:
Seid ihr sicher, dass unbedingt ein Join benötigt wird?
PHP:
 SELECT `Lieferdatum`, `Seriennummer` FROM Auslieferversionen WHERE `Auslieferversionen.KD-Nr`='Kunden.Kd-Nr' AND `Kunden.Kunde` = 'RTL'
 

Neue Beiträge

Zurück