Delphi-PRAXiS
Seite 7 von 8   « Erste     567 8      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi bin am verzweifeln... select abfragen miteinander kombinieren??? (https://www.delphipraxis.net/161073-bin-am-verzweifeln-select-abfragen-miteinander-kombinieren.html)

Serienchiller 17. Jun 2011 10:02

AW: bin am verzweifeln... select abfragen miteinander kombinieren???
 
ja hat sie und zwar b.bid

SQL-Code:

select * from bilder b
left join zwbildertags x on x.bildid=b.bid
left join tags t on t.tid=x.tagid
left join zwbilderprogramme z on z.bildid=b.bid
left join programme p on p.pid=z.programmid

DeddyH 17. Jun 2011 10:05

AW: bin am verzweifeln... select abfragen miteinander kombinieren???
 
Dann fällt mir als Workaround auf die Schnelle so etwas ein:
SQL-Code:
SELECT
  *
FROM
  bilder
WHERE
  bid IN(
    SELECT
      DISTINCT A.bid
    FROM
      bilder A
    LEFT JOIN --hier jetzt die ganzen JOINs
      ...
  )

jobo 17. Jun 2011 10:11

AW: bin am verzweifeln... select abfragen miteinander kombinieren???
 
Du solltest darauf achten, keine Phantome zu jagen.
Du hast jetzt dynamisches SQL und gestern sah Dein Delphi code noch so aus, dass Du "nur" bestimmte Checkbox Kombinationen abgefragt hast (and/or/not Kombinationen).
Nun hast Du reine Or Verknüpfungen, die der Reihe nach abgegrast werden.
Sprich, Du bekommst nun wahrscheinlich einfach erstmalig die volle Ergebnissmenge. Ein Tag, das eben an mehreren Stellen greift, ergibt für jeden Or Fall ein Ergebnis.
Das sollte über ein "Distinct" oder "Grouy by" einzudampfen sein.

Stichwort "schon" Variable:
Ich hab nicht alles verfolgt in dem Thread, aber vielleicht kannst Du statt der aufwendigen und unübersichtlichen Varianten Handhabung die where-Clause fest einbauen mit einer Bedingung die immer wahr ist
SQL-Code:
where 1=1 and([Hier der dynamische Teil])
Das finden nicht alle gut, aber Du sparst Dir viel Code und gewinnst Übersichtlichkeit.

Serienchiller 17. Jun 2011 10:12

AW: bin am verzweifeln... select abfragen miteinander kombinieren???
 
so da haben wirs wieder :wall:
sql error -104
as aproximate floating point values in sql dialect1, but as 64 bit

DeddyH 17. Jun 2011 10:13

AW: bin am verzweifeln... select abfragen miteinander kombinieren???
 
*Gnarf* das SQL bitte.

Serienchiller 17. Jun 2011 10:17

AW: bin am verzweifeln... select abfragen miteinander kombinieren???
 
SQL-Code:
SELECT * FROM bilder b WHERE b.bid IN( 
SELECT DISTINCT b.bid FROM bilder b
left join zwbildertags x on x.bildid=b.bid
left join tags t on t.tid=x.tagid
left join zwbilderprogramme z on z.bildid=b.bid
left join programme p on p.pid=z.programmid

jobo 17. Jun 2011 10:18

AW: bin am verzweifeln... select abfragen miteinander kombinieren???
 
Hast Du eigentlich ein SQL Browser, mit dem Du die Abfragen zuvor ohne Delphi zusammenstellen kannst. Gerade wenn das Neuland für Dich ist, könnte das die produktivere Arbeitsweise sein.
Anwendungsfälle statisch in direkt im SQL Fenster aufbauen, Syntax checken, abrufen, Ergebnis plausibilisieren.
Dann kannst Du das zu Delphi übertragen.

Da fehlt eine Klammer, oder?

DeddyH 17. Jun 2011 10:20

AW: bin am verzweifeln... select abfragen miteinander kombinieren???
 
Zitat:

Zitat von jobo (Beitrag 1106921)
Da fehlt eine Klammer, oder?

Genau, ganz am Schluss des Statements. Die Sortierung kann man dann auch noch schön dahinter unterbringen. Außerdem ist der Alias b doppelt vergeben, die äußere Abfrage kommt auch ohne Alias aus.

Serienchiller 17. Jun 2011 10:21

AW: bin am verzweifeln... select abfragen miteinander kombinieren???
 
man bin ich doof hast recht seh ich jetzt erst...

Serienchiller 17. Jun 2011 10:26

AW: bin am verzweifeln... select abfragen miteinander kombinieren???
 
ok also mit der klammer funktionierts, doch an welcher stelle müsste ich jetzt die where klauseln einfügen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:35 Uhr.
Seite 7 von 8   « Erste     567 8      

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 by Thomas Breitkreuz