![]() |
Re: Performance verbessern
hmm ich benutze mysqlfront - damit geht es auch bekomme aber eine fehlermeldung das etwas bei der syntax nicht stimmt und zwar hier
Delphi-Quellcode:
gruß
(SELECT kategorie AS name, COUNT(*) anzahl
FROM rezepte |
Re: Performance verbessern
Das hatte ich befürchtet, deshalb wollte ich mehr über deine Datenbankstruktur wissen.
Welche Tabellen, Welche Spalten in Tabellen, Welche Verknüpfungen zwischen den Tabellen... Gruss Thorsten |
Re: Performance verbessern
Sollte sicher
SQL-Code:
heißen.
count(*) as anzahl
Aber ich hoffe das kategorie ein Fremdschlüssel ist |
Re: Performance verbessern
Delphi-Quellcode:
hmm das sind die 4 tabellen mit den einzelnen spalten - beziehungen bestehen so eigentlich keine - ich speicher halt jedesmal den namen der kategorie und unterkategorie mit und frage danach ab.
kategorie
name //namen der kategorien unterkat kat //hauptkategorie -> aus tabelle kategorie unter //name der unterkategorie rezepte name //name des rezepts unterkat //dazu gehörige unterkategorie -> aus tabelle unterkat kategorie //hauptkategorie -> aus tabelle kategorie zutaten kategorie //hauptkategorie -> aus tabelle kategorie unterkat //dazu gehörige unterkategorie -> aus tabelle unterkat name //name des rezepts zutat //name der zutat menge //menge der zutat mass //maß der zutat zubereitung //zubereitung als BLOB aber fremdschlüssel usw hab ich nicht eingebaut da ich nicht mehr 100% wusste wie das ging. also im endeffekt steht jede tabelle für sich. die einzelnen felder sind alles charakter felder. |
Re: Performance verbessern
Geb noch die Typen an und was PK und FK ist.
|
Re: Performance verbessern
was meinst du mit PK und FK und den Typen?
|
Re: Performance verbessern
Du solltest dir angewöhnen mit IDs zuarbeiten.
Ich schau mir das jetzt nochmal genauer an... |
Re: Performance verbessern
So, hier mal ein neuer Versuch...
SQL-Code:
Gruss
SELECT k.name AS kategorie, NULL AS unter, NULL AS rezept, ka.anzahl, '1' typ
FROM kategorie k LEFT JOIN (SELECT kategorie, COUNT(DISTINCT name) anzahl FROM rezepte GROUP BY kategorie, unterkat) ka ON k.name = ka.kategorie UNION SELECT k.name AS kategorie, uk.unter, NULL AS rezept, ka.anzahl, '2' typ FROM kategorie k INNER JOIN unterkat uk ON k.name = uk.kat LEFT JOIN (SELECT kategorie, unterkat, COUNT(*) anzahl FROM rezepte GROUP BY kategorie, unterkat) ka ON k.name = ka.kategorie AND uk.unter = ka.unterkat UNION SELECT kategorie, unterkat, r.name, NULL AS anzahl, '3' typ FROM rezepte r ORDER BY kategorie, unter, rezept, typ Thorsten |
Re: Performance verbessern
hi,
danke für deine mühen, wieder ein fehler an der gleichen stelle
SQL-Code:
(SELECT kategorie, COUNT(DISTINCT name) anzahl
FROM rezepte |
Re: Performance verbessern
SQL-Code:
Ich würde aber einen künstlichen Schlüssel ID o.ä. anlegen und diesen als FK verwenden.
as anzahl
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:02 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