Inhaltsarten einer Spalte ausgeben, also Postleitzahlen oder Orte

gutschy

Aktiver Benutzer
Beiträge
32
Hallo Leute,

ja die Frage ist einfach, aber ich finde sie schwierig an google zu stellen.

Es geht um die Abfrage einer Adressdatenbank, es soll eine Vorauswahl von Adressen über die Postleitzahl oder über den Ortsnamen geschehen.

Diese Vorauswahl soll auf einer Webseite als Links zu Verfügung stehen. Also alle Postleitzahlen und Orte stehen in einer Tabelle aufgelistet und man erkennt dadurch welche Gegenden abfragbar sind. Diese Info soll halt aus der Adressdatenbank heraus gefiltert werden.

Und ich schätze mein Hauptproblem ist das mir einfach nicht der Fachausdruck einfallen will, Kumulieren ist schon mal nicht, oder doch?? *grübel*

Danke für eure Hilfe,

gutschy
 
Werbung:
Hallo Leute,

ja die Frage ist einfach, aber ich finde sie schwierig an google zu stellen.

Es geht um die Abfrage einer Adressdatenbank, es soll eine Vorauswahl von Adressen über die Postleitzahl oder über den Ortsnamen geschehen.

Diese Vorauswahl soll auf einer Webseite als Links zu Verfügung stehen. Also alle Postleitzahlen und Orte stehen in einer Tabelle aufgelistet und man erkennt dadurch welche Gegenden abfragbar sind. Diese Info soll halt aus der Adressdatenbank heraus gefiltert werden.

Momentan kannst da bei mit nur 'Bahnhof' abfragen.

Kannst das mal a bissl besser erklären?
 
Ich nehme an das Wort das du suchst ist joinen, setzt aber vorraus dass du mehrere tabellen hast und ich bin mir da bei dir nicht ganz sicher.
Kannst du mal deinen datenbankaufbau beschreiben ?
 
Dann ein Beispiel.

Tabelle, 3 Spalten: Name, Postleitzahl, Ort

| Name........|PLZ.......|Ort............|
|--------------|----------|-------------|
|..Müller......|12345....| Möln.......|
|..Schmidt....|12345...| Möln.......|
|..Meyer.......|07412...| Witten.....|
|..Klose........|07413...| Witten.....|
|..Winter.......|07413...| Witten....|
|..Brecht.......|78944...| Meissen..|

Daraus ergeben sich 3 Links für die Orte: Möln, Witten, Meissen.
Also erfahre ich wer in welchen Orten wohnt.
Dann habe ich 4 Links für die Postleitzahlen: 12345, 07412, 07413, 78944
Das sieht zwar doppelt gemoppelt aus, finde ich aber so praktisch.
 
Select Ort from Adresse_Tabelle;

Ergibt: Meissen, Möln, Möln, Witten, Witten, Witten
Soll aber: Meissen, Möln, Witten
ergeben.
 
es gibt noch ne 2. möglichkeit,
select * from adresstabelle group by ort
kann mir btw jemand erklären was der unterschied zwischen distinct und gruop by ist?
 
es gibt noch ne 2. möglichkeit,
select * from adresstabelle group by ort

Bitte NICHT in Aggregatsabfragen mit * in der Select-Liste arbeiten, das ist ganz und gar fail.

kann mir btw jemand erklären was der unterschied zwischen distinct und gruop by ist?

GROUP BY ist Bestandteil bei Aggregationen. DISTINCT liefert definitiv distincte Datensätze.

Code:
test=*# create table foo (id int, val int);
CREATE TABLE
test=*# insert into foo values (1,10);
INSERT 0 1
test=*# insert into foo values (1,20);
INSERT 0 1
test=*# insert into foo values (3,30);
INSERT 0 1
test=*# select id, sum(val) from foo group by id;
 id | sum
----+-----
  1 |  30
  3 |  30
(2 rows)

test=*# select distinct * from foo;
 id | val
----+-----
  3 |  30
  1 |  10
  1 |  20
(3 rows)

test=*# select distinct id from foo;
 id
----
  1
  3
(2 rows)


MySQL macht in diesem Dunstkreis einige Dinge komplett falsch, zumindest wenn man die Latte der SQL-Spec als Maßstab nimmt. Das kann u.U. zu vollkommen unerwarteten und falschen Resultaten führen.
 
Werbung:
Ok danke für den link.
ich konnte auch keinen großen unterschied feststellen.
Bei meiner Mysql Datenbank waren beide Abfragen etwa gleich schnell.
aber ich werd in zukunft mal ein wenig mit distinct arbeiten. vieleicht merke ich ja auf lange zeit einen unterschied.
Bisher habe ich immer "SELECT x FROM foo GROUP BY x gemacht
ich hab von distinct mal in der schule gehört aber hier im arbeitsumfeld war es halt nicht üblich, deshalb hatte ich das mehr oder weniger vergessen.

Wieder was gelernt
 
Zurück
Oben