Bestimmte Daten aus DB auslesen bereitet Problem
Martin Hesse
- programmiertechnik
moin moin,
ich habe ein problem und finde seit montag abend keine lösung.
ich habe eine DB mit einer spalte ort...!
in dieser spalte kommen ort wie z.B. Berlin öfters vor! es befinden sich ca. 80 einträge in der DB und einträge in denen in der Spalte Berlin steht kommt nunmal öfters vor!
Nun will ich aber in einem select menü die einzelnen orte angeben lassen, wäre dann aber dumm wenn berlin oder auch nadere städte öfters vorkommt!
hat einer von euch eine idee wie ich es realisieren könnte das der entsprechende ort nur einmal in dem select menü vorkommt?
würde mich um eine antwort freuen!
lg, aus dem kalten norden - martin!
hat einer von euch eine idee wie ich es realisieren könnte das der entsprechende ort nur einmal in dem select menü vorkommt?
select distinct ort from ...
Hi,
ich habe ein problem und finde seit montag abend keine lösung.
ich habe eine DB mit einer spalte ort...!
in dieser spalte kommen ort wie z.B. Berlin öfters vor! es befinden sich ca. 80 einträge in der DB und einträge in denen in der Spalte Berlin steht kommt nunmal öfters vor!
"select ort_name from orte group by ort_name"
Gruss,
Ludger
Hi Ludger,
"select ort_name from orte group by ort_name"
wahrscheinlich wird Dein Ansatz mit GROUP BY zum gleichen Ergebnis führen wie die DISTINCT-Lösung (ich weiß nicht, wie es mit der Performance bei MySQL aussieht, bei MSSQL sind die Execution Plans der beiden Querys identisch). Allerdings sehe ich GROUP BY als eine Klausel, die bei der Aggregation von Daten Anwendung findet, und eine solche liegt hier nicht vor. Deshalb würde ich DISTINCT vorziehen, das macht die Query lesbarer und erschiene mir als der bessere Stil - und ein solcher macht das Leben leichter.
hth Robert
Hi,
Deshalb würde ich DISTINCT vorziehen, das macht die Query lesbarer und erschiene mir als der bessere Stil - und ein solcher macht das Leben leichter.
habe ich bis vor kurzem auch geglaubt, allerdings meine Meinung geaendert: http://forum.de.selfhtml.org/archiv/2005/1/t99178/#m605855
Also GROUP BY und Aggregatfunktionen kommen in der freien Natur zwar haeufig zusammen vor, aber das kleine GROUP BY kann auch alleine fuer sich bestehen.
Gruss,
Ludger
Hi,
Deshalb würde ich DISTINCT vorziehen [...]
habe ich bis vor kurzem auch geglaubt, allerdings meine Meinung geaendert: http://forum.de.selfhtml.org/archiv/2005/1/t99178/#m605855
Nach dem Überfliegen der von Dir verlinkten Diskussion ist mir nicht evident, warum ich meine Meinung ändern sollte...
Also GROUP BY und Aggregatfunktionen kommen in der freien Natur zwar haeufig zusammen vor, aber das kleine GROUP BY kann auch alleine fuer sich bestehen.
Klar kann es das, aber ich betrachte es aus stilistischer Perspektive gegenüber der Alternative DISTINCT als die schlechtere Wahl. Wenn wir allerdings nicht einer Meinung sind, daß Aggregation eine natürliche Begleiterscheinung von GROUP BY ist, dann sind unsere Sichtweisen eben unterschiedlich.
hth Robert
Hi,
Klar kann es das, aber ich betrachte es aus stilistischer Perspektive gegenüber der Alternative DISTINCT als die schlechtere Wahl. Wenn wir allerdings nicht einer Meinung sind, daß Aggregation eine natürliche Begleiterscheinung von GROUP BY ist, dann sind unsere Sichtweisen eben unterschiedlich.
Ok, da zu zu den eher wenigen gehoerst, bei denen es mich nicht in meiner Meinung bestaerkt bzw. egal ist, wenn ein Dissenz festgestellt wird (der Mann aus Karlsruhe faellt mir da noch ein), bearbeite ich den Sachverhalt noch einmal wie folgt:
Gegeben ist eine Datentabelle 'DT_1' eines RDBMSs mit den Datenfeldern 'DF_1', 'DF_2' und 'DF_3'. Zu betrachten sind die beiden unetrschiedlichen auf der GROUP BY-Klausel bzw. DISTINCT-Klausel basierenden Abfragemoeglichkeiten um die Anforderung asu https://forum.selfhtml.org/?t=99736&m=609738 moglichst fachgerecht zu bearbeiten.
mit DISTINCT:
die Abfrage koennte lauten:
SELECT DISTINCT
DF_1,
DF_2,
DF_3
FROM
DT_1
Vorteile:
mit GROUP BY:
die ABfrage koennte lauten:
SELECT
DF_1,
DF_2,
DF_3
FROM
DT_1
GROUP BY
DF_1,
DF_2,
DF_3
Vorteile:
Nachteile:
Zusammenfassung:
Beide Herangehensweisen sind ideologisch/stilistisch OK, die MySQL-Gemeinde mag mit der DISTINCT-Version besser versorgt sein, die stolzen Betreiber von Oracle und M$SQL Datenservern mit der GROUP BY-Variante, die auch dem DISTINCT-Missbrauch weniger erfahrener Kraefte keine weitere Nahrung gibt.
in dieem Sinne,
Gruss,
Ludger