[MySQL] Probleme mit Between

MultiStorm

Grünschnabel
Hallo Alle zusammen,
ich habe ein Problem mit Between in einer Abfrage ....

Ich habe eine Tabelle die wie folgt aufgebaut ist

[ID] = AI
[VON] = Date
[BIS] = Date

Sin der Tabelle ist es Mitgliedschaften zu Speichern ...
Also Mitglied (ID) will eine Mitgiedschaft vom 1.1.2004 bis 1.6.2004
nun soll gefrüft werden ob für den besagten Zeitraum bereits eine Mitgliedschaft besteht um überschneidungen zu prüfen & außzuschließen.

Mein ansatz dazu war:
Code:
SELECT * FROM Konto WHERE (ID = '1004') AND ('2004-01-01' BETWEEN von AND bis) OR ('2004-06-01' BETWEEN von AND bis);

Eigentlich Funktioniert es ganz gut zumindest die Zeitliche Ermittlung....
Was aber nun das Problem ist das das ID = 1004 Ignoriert wird ...
er zeigt zwar die richtigen Daten an aber er Zeigt diese für Alle IDs an ....
Er ignoriert es einfach ....
wo ist mein Fehler ?
Kan mir Jemand helfen ..?

MFG Sascha !
PS. THX im Vorraus !
 
AND bindet stärker als OR. In der Operatorrangfolge kann ein AND mit eine * und ein OR mit einem + verglichen werden.

Du möchtest a * (b+c) rechnen, tatsächlich rechnest du aber (a*b)+c
Deshalb klammern

SELECT * FROM Konto WHERE (ID = '1004') AND (
('2004-01-01' BETWEEN von AND bis) OR ('2004-06-01' BETWEEN von AND bis)
);
 

Neue Beiträge

Zurück