Addi: Ausgabe über zwei Tabellen, sortiert, und nur jeweils einen Tref

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

  1. Welches Datenbanksystem?

    1. Welches Datenbanksystem?

      Ich habe ein Problem mit der Ausgabe über zwei Tabellen hinweg in meiner MYSQL Datenbank.

  2. 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.

  3. 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 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