AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Komplexe SQL-Abfrage optimieren
Thema durchsuchen
Ansicht
Themen-Optionen

Komplexe SQL-Abfrage optimieren

Ein Thema von omp · begonnen am 18. Feb 2025 · letzter Beitrag vom 27. Feb 2025
Antwort Antwort
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#1

AW: Komplexe SQL-Abfrage optimieren

  Alt 18. Feb 2025, 10:21
Was wird hier eigentlich gemacht?

Zuerst brauchen wir ein bestimmtes Wort (bzw. eine Liste der IDs zu Wörtern, die dem Suchbegriff ähneln):

select wordid from ftiword where (w.word like {s gesuchteswort%})
Zu diesem Ergebnis möchten wir alle DocID:

SQL-Code:
select id.docid from ftiwid id where exists (
  select 1 from ftiword w where (w.word like {s gesuchteswort%}) and id.wordid = w.wordid
)
Zu diesem Ergebnis benötigen wir nun alle Dokumente:

SQL-Code:
select * from document a where exists
(
  select 1 from ftiwid id where exists
  (
    select 1 from ftiword w where (w.word like {s gesuchteswort%}) and id.wordid = w.wordid
  ) and id.docid = a.docid
)
Keine Ahnung, ob MSSQL mit so'ner Syntax zurecht kommt.

Warum wird im zweiten SQL nach einer konkreten ID gesucht und zusätzlich noch in einer Liste von IDs?

Hier würd' ich's dann mit 'nem Union versuchen:

SQL-Code:
select * from document where docid = 200001
union
select * from document a where exists
(
  select 1 from ftiwid id where exists
  (
    select 1 from ftiword w where (w.word like {s gesuchteswort%}) and id.wordid = w.wordid
  ) and id.docid = a.docid
)
Wenn das nicht geht:
SQL-Code:
select * from document where docid = 200001
union
SELECT * FROM document
WHERE docid IN (SELECT id.docid FROM ftiwid id INNER JOIN ftiword w ON id.wordid = w.wordid WHERE (w.word LIKE {s gesuchteswort%}) )
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:08 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