![]() |
Datenbank: mdb • Zugriff über: ado
Abfrage vereinfachen
Hiho,
kann man diese Abfragen zu einer einzigen vereinfachen? Es zu viele Themen dazu, dass ich nicht weiß welche die richtige Lösung dafür ist:
Delphi-Quellcode:
so das alle Spalten für eine weiterverarbeitung in vars gepackt
adoquer.SQL.Add('SELECT * FROM kochbuch WHERE ID='+IntToStr(tg1)');
adoquer1.SQL.Add('SELECT * FROM zutaten WHERE ID='+IntToStr(tg1)'); werden können... |
Re: Abfrage vereinfachen
SQL-Code:
Wobei ich den Zusammenhang der beiden Tabellen noch nicht verstanden habe.
SELECT K.*, Z.*
FROM kochbuch K, zutaten Z WHERE K.ID=:k_id AND Z.ID=:z_id |
Re: Abfrage vereinfachen
Danke DeddyH
wenn: WHERE K.ID=:k_id AND Z.ID=:z_id würden sie sich doch nur untereinander vergleichen?! aber für meinen Fall: ID='+IntToStr(tg1) wird die Bedingung von "aussen" geliefert. Wie soll das dann gehen. Zum Zusammenhang: aus beiden tabellen werden daten ausgelesen die anschliessend in eine dritte geschrieben werden, sozusagen als ergebnis. |
Re: Abfrage vereinfachen
Wieso sollten sie untereinander verglichen werden? Das ist kein Join. Anders wäre das bei
SQL-Code:
WHERE K.ID = Z.ID
|
Re: Abfrage vereinfachen
Wie sehen die beiden Tabellen aus?
Wie soll die zieltabelle aussehen? Union? |
Re: Abfrage vereinfachen
so zum Beispiel:
Tabelle 1: id,rezeptname,kategorie,kalorien,naehrwert,menge Tabelle 2: rezeptnr,zutatnr,menge jetzt alles zusammen NIMM * von t1 und * von t2 WENN id=re.text und rezeptnr=re.text das alles dann in variablen speichern die ich dann benötige Ich hoffe das die einigermassen verständlich war |
Re: Abfrage vereinfachen
Hast Du meine Abfrage mal ausprobiert?
|
Re: Abfrage vereinfachen
So sieht es aber ganz anders aus. Die beiden Tabellen stehen nicht in einem 1:1 sondern in einem 1:n-Verhältnis.
|
Re: Abfrage vereinfachen
Wäre das nicht eher eine m:n-Beziehung zwischen Rezept und Zutat? Zwar kenne ich das Datenmodell nicht, aber das erscheint mir logisch.
|
Re: Abfrage vereinfachen
Danke Leute
wie am anfang erwähnt geht das ja mit 2 abfragen auch zum ergebnis. Ich wollte es in eine packen, wenn das geht. Denn dann stopfe ich die daten in 2 querys bzw datasets |
Re: Abfrage vereinfachen
Zitat:
|
Re: Abfrage vereinfachen
Zitat:
|
Re: Abfrage vereinfachen
Zitat:
|
Re: Abfrage vereinfachen
Zitat:
im bezug auf meine Tabellen Die Daten in beiden Tabellen sind schon durchdacht auch wenn sich das für Euch nicht erschließt |
Re: Abfrage vereinfachen
verbinde das Detail-DataSet (Zutaten) mit Hilfe von .MasterSource mit der, mit dem Master-Dataset (Rezepte) verknüpften, DataSource.
Zitat:
Rezept: ID Bez 1 Was Leckeres ... Zutat: ID Rezept Bez Anzahl 1 1 Zucker 2 2 1 Milch 500 ... Sondern so (n:m) Rezept: ID Bez 1 Was Leckeres ... Zutat: ID Bez 1 Zucker 2 Milch ... Zuordnung: ID Rezep Zutat Menge 1 1 1 2 2 1 2 500 ... Lösen. |
Re: Abfrage vereinfachen
Genau, da es sich ja wie gesagt in meinen Augen um eine m:n-Beziehung handelt: ein Rezept besteht aus m Zutaten und eine Zutat kann in n Rezepten verwendet werden.
|
Re: Abfrage vereinfachen
Danke Leute für Eure Antworten
ursprünglich hatte ich das auch so geplant. Aber ich bin daran gescheitert, dass wenn rezept und zutaten gespeichert werden die id vom Rezept benötigte. Returnid und ähnliches gibts in dem DBMS nicht. Damit sieht es so aus: Einträge in der Zutatentabelle werden also einzeln jedem Rezept zugeordnet. Auch wenn es etwas umständlich ist. Wenn ich dem Vorschlag von mkinzler folgen würde müsste eine dritte Tabelle, Zuordungstabelle?, ins Spiel kommen. Richtig? |
Re: Abfrage vereinfachen
Richtig. Ansonsten ist die DB nicht normalisiert.
|
Re: Abfrage vereinfachen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:12 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