Ausgabe über zwei Tabellen, sortiert, und nur jeweils einen Tref
Addi
- datenbank
0 Frank (no reg)2 dedlfix0 Addi
Ich habe ein Problem mit der Ausgabe über zwei Tabellen hinweg in meiner MYSQL Datenbank.
In der ersten Tabelle habe ich die Hauptkategorien
tabelle1:
id
kategorie
in der zweiten die Unterkategorien
tabelle2:
id
zu_kategorie
name
jetzt würde ich gerne alle Kategorien ausgeben und immer die erste Unterkategorie aus der zweiten Tabelle sortiert nach ABC
Bis jetzt habe ich es so versucht
SELECT id, kategorie
FROM tabelle1
order by kategorie ASC
dann
SELECT a.id, a. kategorie , b.name
FROM tabelle1 a, tabelle2 b
WHERE a.id=b. zu_kategorie
order by a.kategorie ASC
dann bekomme ich aber alle Unterkategorien mit den Hauptkategorien.
Ich möchte aber nur alle Hauptkategorien (tabelle1) und jeweils eine (die erste im ABC) Unterkategorie.
Adi
Welches Datenbanksystem?
Welches Datenbanksystem?
Ich habe ein Problem mit der Ausgabe über zwei Tabellen hinweg in meiner MYSQL Datenbank.
Tach!
Ich möchte aber nur alle Hauptkategorien (tabelle1) und jeweils eine (die erste im ABC) Unterkategorie.
Wenn du nur einen Wert aus der zweiten Tabelle benötigst, dann geht statt des Join ein so genanntes correlated subquery im SELECT. Dieses fragt zur Hauptkategorie alle Unterkategorien ab, sortiert diese wie gewünscht und limitiert auf einen Datensatz. Das SELECT des Subquery darf dann nur genau einen Wert selektieren. Wenn du mehr Werte benötigst, wird das üblicherweise nichts, weil das nur über Joinen geht und da weder sortierung noch Limit angegeben werden kann.
SELECT a.feld, ..., (SELECT feld FROM b WHERE b.x=a.x ORDER BY b.x LIMIT 1) AS b_feld FROM a WHERE ...
(Das Schlüsselwort AS kann entfallen. Ebenso das b_feld, aber damit lässt sich üblicherweise in der Weiterverarbeitung besser auf dieses (berechnete) Feld zugreifen.)
dedlfix.
ist das g**l (ich weis darf mach nicht schreiben).
Aber Danke.
Ich muss gestehen, die Antwort war mehr als Simple. Doch genau das ist Genial, muss man erst mal drauf kommen.
Adi
Ich habe ein Problem mit der Ausgabe über zwei Tabellen hinweg in meiner MYSQL Datenbank.
In der ersten Tabelle habe ich die Hauptkategorientabelle1:
id
kategoriein der zweiten die Unterkategorien
tabelle2:
id
zu_kategorie
namejetzt würde ich gerne alle Kategorien ausgeben und immer die erste Unterkategorie aus der zweiten Tabelle sortiert nach ABC
Bis jetzt habe ich es so versucht
SELECT id, kategorie
FROM tabelle1
order by kategorie ASCdann
SELECT a.id, a. kategorie , b.name
FROM tabelle1 a, tabelle2 b
WHERE a.id=b. zu_kategorie
order by a.kategorie ASCdann bekomme ich aber alle Unterkategorien mit den Hauptkategorien.
Ich möchte aber nur alle Hauptkategorien (tabelle1) und jeweils eine (die erste im ABC) Unterkategorie.
Adi