![]() |
[MySQL] Negative SQL-Abfrage
Hi!
Tut mir leid für den schlechten Titel, wusste es nicht besser zu beschreiben.. MySQL 4.0.23 Tabelle A: Bücher (ID, Name) Tabelle B: Reservierung(Buch_ID, Woche) Finde alle Bücher, die NICHT in (Kalender-)Woche 38 oder 39 reserviert sind. Klingt einfach, bekomme es aber einfach nicht hin. Ich habe schon relativ komplexe QUeries zusammengebaut, hier habe ich aber einfach ein Brett vorm Kopf. Ich bin für jede Hilfe dankbar. Grüße Sebastian |
Re: [MySQL] Negative SQL-Abfrage
Funktioniert es damit?
SQL-Code:
SELECT * FROM `Bücher`, `Reservierungen` WHERE `ID` = `Buch_ID` AND `Woche` <> 38 AND `Woche` <> 39
|
Re: [MySQL] Negative SQL-Abfrage
Hallo!
Ich hoffe, das funktioniert in MySQL:
SQL-Code:
Das Sollte Dir alle Buchnamen ausgeben, die außerhalb der Wochen 38 und 39 reserviert sind.
select Bücher.Name
from Bücher inner join Reservierung on Reservierung.Buch_ID = Bücher.Name where not Reservierung.Woche in (38, 39) group by Bücher.Name
SQL-Code:
Das sollte Dir alle Bücher des Bestandes ausgeben, die in der Wochen 38 und 39 nicht reserviert sind und somit noch zur Verfügung stehen.
select Bücher.Name
from Bücher where not exists (select Reservierung.Woche from Reservierung where Reservierung.Buch_ID = Bücher.ID and Reservierung.Woche in (38,39) ) Ich hoffe, Dir hilft das weiter, ich arbeite selbst mit Firebird und MSSQL. MySQL habe ich bisher noch nicht benutzt. Gruß onlinekater PS: Codes runtergetippt, nicht getestet PPS: Trotz roten Kastens, da mein Beitrag mehr Möglichkeiten aufzeigt [Edit] Ich gehe mal davon aus, dass mein zweiter Codeschnippsel das Passende ist. [/Edit] |
Re: [MySQL] Negative SQL-Abfrage
Zitat:
|
Re: [MySQL] Negative SQL-Abfrage
Hm, stimmt...
So besser?
SQL-Code:
SELECT * FROM `Bücher` LEFT JOIN `Reservierungen` ON `ID` = `Buch_ID` WHERE `Woche` <> 38 AND `Woche` <> 39
|
Re: [MySQL] Negative SQL-Abfrage
@dax: Das zeigt Dir nun alle Bücher und alle Reservierungen außerhalb der Wochen 38 und 39 an
Gruß onlinekater |
Re: [MySQL] Negative SQL-Abfrage
Oh :( Ich dachte, ein Left Join, bei dem Bedingung nicht erfüllt ist, füllt die Spalten, für die es keine Daten gibt, mit NULL..
|
Re: [MySQL] Negative SQL-Abfrage
Zitat:
|
Re: [MySQL] Negative SQL-Abfrage
Zitat:
|
Re: [MySQL] Negative SQL-Abfrage
@dax: ja, das siehst Du richtig.
Als Ergebnis bekommst Du dann z.B. Folgendes: Bücher: Zitat:
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 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