Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   [MySQL] Negative SQL-Abfrage (https://www.delphipraxis.net/75586-%5Bmysql%5D-negative-sql-abfrage.html)

sieppl 22. Aug 2006 00:18

Re: [MySQL] Negative SQL-Abfrage
 
Mmh, um den Subquery zu umschiffen packe ich den inneren Select in eine temporäre Tabelle. Ich hoffe ich kann auf diese dann irgendwie das "NOT EXISTS" anwenden.. EDIT: :wall: Nö. "EXISTS" gehört natürlich zu den SubQueries. Wird wohl schwierig den Provider zu einer Änderung zu bewegen.

TBx 22. Aug 2006 00:36

Re: [MySQL] Negative SQL-Abfrage
 
Hallo!

Noch ein Versuch!

SQL-Code:
select bücher.name
  from bücher
    left outer join reservierungen
      on reservierungen.buch_id = bücher.id
      and reservierungen.woche in (38, 39)
  where reservierungen.woche is null
  group by bücher.name
Mit Firebird 2.0 klappts (Hab da nur Bücher in buecher umbenannt).

Geht das mit MySQL auch?

Gruß

onlinekater

sieppl 22. Aug 2006 09:01

Re: [MySQL] Negative SQL-Abfrage
 
Zitat:

Zitat von onlinekater
Hallo!
SQL-Code:
select bücher.name
  from bücher
    left outer join reservierungen
      on reservierungen.buch_id = bücher.id
      and reservierungen.woche in (38, 39)
  where reservierungen.woche is null
  group by bücher.name
Mit Firebird 2.0 klappts (Hab da nur Bücher in buecher umbenannt).

Geht das mit MySQL auch?

Moin! Das geht mit MySql auch und sieht schon sehr gut aus. Das Problem ist nur noch, dass wenn ein Buch in KW 38 reserviert ist, aber in KW 39 noch frei nicht angezeigt wird. Wenn man das hinbekommt, sollte auch ein Eintrag ob das Buch in KW 38, 39 oder beiden frei ist nicht schwer sein. :) Ich werde mal ein wenige rumspielen, danke für den Ansatz!

sieppl 22. Aug 2006 09:17

Re: [MySQL] Negative SQL-Abfrage
 
SQL-Code:
select bücher.name, "KW 38 frei"
  from bücher
    left outer join reservierungen
      on reservierungen.buch_id = bücher.id
      and reservierungen.woche = 38
  where reservierungen.woche is null
  group by bücher.name
UNION
select bücher.name, "KW 39 frei"
  from bücher
    left outer join reservierungen
      on reservierungen.buch_id = bücher.id
      and reservierungen.woche = 39
  where reservierungen.woche is null
  group by bücher.name
So klappt es! Vielen Dank! Mein Fehler war es die Bedingung mit der KW in die WHERE-Klausel zu setzen anstatt in die JOIN-Bedingung. Wieder was gelernt.

DP-Maintenance 22. Aug 2006 14:09

DP-Maintenance
 
Dieses Thema wurde von "Jelly" von "Programmieren allgemein" nach "Datenbanken" verschoben.
Dank an Thorben77. Definitiv falsche Sparte


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:46 Uhr.
Seite 2 von 2     12   

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