AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi bin am verzweifeln... select abfragen miteinander kombinieren???
Thema durchsuchen
Ansicht
Themen-Optionen

bin am verzweifeln... select abfragen miteinander kombinieren???

Offene Frage von "DeddyH"
Ein Thema von Serienchiller · begonnen am 15. Jun 2011 · letzter Beitrag vom 17. Jun 2011
Antwort Antwort
Seite 4 von 8   « Erste     234 56     Letzte »    
Serienchiller

Registriert seit: 15. Jun 2011
Ort: Wurzen
40 Beiträge
 
Delphi 7 Professional
 
#31

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

  Alt 16. Jun 2011, 10:56
@deddyh

du hast es richtig verstanden. man sucht aber immer nach bildern, nie direkt nach programmen oder tags, sondern nur nach bildern, die über zwischentabellen mit den programmen/tags, die den suchbegriff enthalten, verbunden sind.

habe jetzt etwas anderes probiert. ist zwar erstmal statisch aber habe erstmalig keinen sql fehler(!!!!) erhalten.:

Delphi-Quellcode:
if frmhaupt.CheckBox1.Checked and frmhaupt.CheckBox2.Checked and
      not frmhaupt.CheckBox3.Checked then
      dm.dsetbilder.SelectSQL.Add('select * from zwbilderprogramme z, '+
        'bilder b, programme p '+
        'where b.bid=z.bildid and p.pid=z.programmid ' +
        'and p.namep containing UPPER(:WERT) or b.name '+
        'containing upper(:WERT)');
das einzige problem dabei ist, dass ich nun die datensätze doppelt und dreifach sehe, wollte das mit distinct b.name lösen, aber das programm braucht ja auch die ganzen anderen felder aus der tabelle bilder.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#32

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

  Alt 16. Jun 2011, 12:28
Delphi-Quellcode:
if frmhaupt.CheckBox1.Checked and frmhaupt.CheckBox2.Checked and
      not frmhaupt.CheckBox3.Checked then
      dm.dsetbilder.SelectSQL.Add('select * from zwbilderprogramme z, '+
        'bilder b, programme p '+
        'where b.bid=z.bildid and p.pid=z.programmid ' +
        'and p.namep containing UPPER(:WERT) or b.name '+
        'containing upper(:WERT)');
ich denke so ist es besser ("or" klammern):
Code:
'where b.bid=z.bildid and p.pid=z.programmid ' +
'and (p.namep containing UPPER(:WERT) or b.name '+
'containing upper(:WERT)'));
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Serienchiller

Registriert seit: 15. Jun 2011
Ort: Wurzen
40 Beiträge
 
Delphi 7 Professional
 
#33

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

  Alt 16. Jun 2011, 12:36
super es funktioniert!!! dank der klammer! danke danke danke

endlich bin ich einen schritt weiter...
Delphi-Quellcode:

if frmhaupt.CheckBox1.Checked and frmhaupt.CheckBox2.Checked and
      not frmhaupt.CheckBox3.Checked then
      dm.dsetbilder.SelectSQL.Add('select * from zwbilderprogramme z, '+
        'bilder b, programme p '+
        'where b.bid=z.bildid and p.pid=z.programmid ' +
        'and (p.namep containing UPPER(:WERT) or b.name '+
        'containing upper(:WERT)) order by upper(b.name)');
nun muss ich nur noch die anderen abfragen miteinander verbinden, mal schauen ob ich das hinkriege

Geändert von Serienchiller (16. Jun 2011 um 12:39 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#34

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

  Alt 16. Jun 2011, 12:36
Korrekt, AND hat eine stärkere Bindung als OR.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Serienchiller

Registriert seit: 15. Jun 2011
Ort: Wurzen
40 Beiträge
 
Delphi 7 Professional
 
#35

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

  Alt 16. Jun 2011, 13:08
so habe mein neu erworbenes wissen jetzt versucht auf die anderen kombinationsmöglichkeiten zu übertragen, was schon teilweise funktionierte. leider gab er mir diesmal nur eine handvoll datensätze aus und ignorierte alle anderen... aber immerhin gabs keinen sql fehler

Delphi-Quellcode:

// wenn nach bild und tag gesucht wird

    if frmhaupt.CheckBox1.Checked and not frmhaupt.CheckBox2.Checked and
      frmhaupt.CheckBox3.Checked then
      dm.dsetbilder.SelectSQL.Add('select * from zwbildertags x, '+
        'bilder b, tags t '+
        'where b.bid=x.bildid and t.tid=x.tagid ' +
        'and (t.namet containing UPPER(:WERT) or b.name '+
        'containing upper(:WERT)) order by upper(b.name)');

// wenn nach programm und tag gesucht wird

    if not frmhaupt.CheckBox1.Checked and frmhaupt.CheckBox2.Checked and
      frmhaupt.CheckBox3.Checked then
      dm.dsetbilder.SelectSQL.Add('select * from zwbilderprogramme z, '+
        'bilder b, programme p,zwbildertags x, tags t '+
        'where b.bid=z.bildid and p.pid=z.programmid ' +
        'and b.bid=x.bildid and t.tid=x.tagid '+
        'and (p.namep containing UPPER(:WERT) or t.namet '+
        'containing upper(:WERT)) order by upper(b.name)');
habe die lösung: ich habe nur 2 ds, die überhaupt mit einem tag verknüpft sind also zeigt es nur 2 an. ich würde aber gerne auch die anzeigen lassen, wo garkein tag verlinkt ist...

Geändert von Serienchiller (16. Jun 2011 um 13:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#36

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

  Alt 16. Jun 2011, 13:25
Im Moment machst Du einen INNER JOIN über 3 Tabellen, das bedeutet, dass Du nur DS gelistet bekommst, die über alle Tabellen verknüpft sind. Was Du also brauchst, ist ein OUTER JOIN.
SQL-Code:
SELECT
  Feldliste
FROM
  Tabelle1 A
LEFT JOIN --oder auch LEFT OUTER JOIN, ist es aber automatisch
  Tabelle2 B ON B.FK = A.PK
LEFT JOIN --oder auch LEFT OUTER JOIN, ist es aber automatisch
  Tabelle3 C ON C.FK = B.PK
Gibt es in Tabelle2 bzw. Tabelle3 keine entsprechenden DS, haben deren Felder dann durchgängig NULL-Werte.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Serienchiller

Registriert seit: 15. Jun 2011
Ort: Wurzen
40 Beiträge
 
Delphi 7 Professional
 
#37

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

  Alt 16. Jun 2011, 13:32
super danke hab das halt mit der schreibweise mit diesem join noch nicht so ganz verinnerlicht. ich probiers mal...

allerdings hatte ich mit den joins immer sql fehler... mit dieser variante allerdings nicht. ist es evtl. möglich, einen mit dieser variante zu formulieren? z.b. mit or statt and?

Geändert von Serienchiller (16. Jun 2011 um 13:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#38

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

  Alt 16. Jun 2011, 13:44
In der Wikipedia ist das IMO recht gut erklärt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#39

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

  Alt 16. Jun 2011, 14:00
Sry, ich hatte das Edit nicht gesehen. Ja, das geht, das wäre dann Deine Where-Klausel.
SQL-Code:
SELECT
  Feldliste
FROM
  Tabelle1 A
LEFT JOIN
  Tabelle2 B ON B.FK = A.PK --Verknüpfungsbedingung(en)
WHERE
  A.Feld1 = 'DingsOR B.Feld1 = 'Bums--Filterbedingung(en)
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Serienchiller

Registriert seit: 15. Jun 2011
Ort: Wurzen
40 Beiträge
 
Delphi 7 Professional
 
#40

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

  Alt 16. Jun 2011, 14:05
aber da ist ja wieder das join drin... das muss doch auch ohne das join gehen...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 8   « Erste     234 56     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:13 Uhr.
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