Durch mehrere Tabellen gehen! MySQL Server Version: 5.5.35-33.0-log

Scuzzi

Mitglied
Hallo Liebes Forum,

Bitte könnt Ihr mir helfen, ich stehe am Berg.

Ich möchte meine Applikation um ein Kassenbuch erweitern. Hierbei geht es aber nicht um buchhalterische Probleme.

Vielmehr geht es nun für mich ums Verständnis.

Ich arbeite dabei mit 5 Tabellen;


Tabelle1 bh_konten
SELECT
bh_konten.id,
bh_konten.kunden_id,
bh_konten.konto_nummer,
bh_konten.beschreibung,
bh_konten.bh_kategorien_vorlagen_id Fremdschlüssel
FROM
bh_konten


Tabelle2 bh_kategorien_vorlagen
SELECT
bh_kategorien_vorlagen.id,
bh_kategorien_vorlagen.kategorien_vorlagen_bezeichnung
FROM
bh_kategorien_vorlagen


Tabelle3 bh_kategorien
SELECT
bh_kategorien.id,
bh_kategorien.bh_kategorien_vorlagen_id, Fremdschlüssel
bh_kategorien.bh_buchungsart_id, Fremdschlüssel
bh_kategorien.kategorien_nr,
bh_kategorien.kategorien_bezeichnung
FROM
bh_kategorien


Tabelle4 bh_buchungsart
SELECT
bh_buchungsart.id,
bh_buchungsart.buchungsart
FROM
bh_buchungsart

Tabelle5 bh_buchungen
SELECT
bh_buchungen.id,
bh_buchungen.bh_konten_id, Fremdschlüssel
bh_buchungen.bh_kategorien_id, Fremdschlüssel
bh_buchungen.datum,
bh_buchungen.buchungen_text,
bh_buchungen.betrag,
bh_buchungen.valutadatum,
bh_buchungen.off-belastungen,
bh_buchungen.off-gutschriften,
bh_buchungen.off-buchungsart,
bh_buchungen.off-bh_mandate_id
FROM
bh_buchungen


Nun möchte ich direkt über das konto, buchungen vornehmen.

Bis zur Auswahl der Kategorien läuft es auch, aber hier zeigt er mir
immer alle Kategorien aus allen Vorlagen.

Ich habe schon so viele Varianten versucht, dass ich möglicherweise komplett vom Weg abgekommen bin.

Hier mal der letzte Versuch

BH_Konten
SELECT
bh_konten.id,
bh_konten.fahrschule_id,
bh_konten.konto_nummer,
bh_konten.beschreibung,
bh_konten.bh_kategorien_vorlagen_id,
BH_Kategorien_ID
FROM
bh_konten


LEFT JOIN (
SELECT bh_katd.id AS BH_Kategorien_ID,
bh_katd.bh_kategorien_vorlagen_id
FROM bh_kategorien AS bh_katd

) AS bh_kat
ON bh_kat.bh_kategorien_vorlagen_id = bh_konten.bh_kategorien_vorlagen_id

GROUP BY bh_konten.id


BH_Kategorien_Vorlagen wie oben


BH_Kategorien
SELECT
bh_kategorien.id,
bh_kategorien.bh_kategorien_vorlagen_id,
bh_kategorien_vorlagen.kategorien_vorlagen_bezeichnung,
bh_kategorien.bh_buchungsart_id,
bh_kategorien.kategorien_nr,
bh_kategorien.kategorien_bezeichnung

FROM
bh_kategorien
INNER JOIN bh_kategorien_vorlagen ON (bh_kategorien.bh_kategorien_vorlagen_id = bh_kategorien_vorlagen.id)


BH_Buchungsart wie oben


BH_Buchungen
SELECT
bh_buchungen.id,
bh_buchungen.bh_konten_id,
BH_Kategorien_BH_Kategorien_Vorlagen_ID,
bh_buchungen.bh_kategorien_id,
bh_buchungen.datum,
bh_buchungen.buchungen_text,
bh_buchungen.betrag,
bh_buchungen.valutadatum
FROM
bh_buchungen


LEFT JOIN (
SELECT bh_kontd.id,
bh_kontd.bh_kategorien_vorlagen_id AS BH_Konten_BH_Kategorien_Vorlagen_ID
FROM bh_konten AS bh_kontd

) AS bh_kont
ON bh_buchungen.bh_konten_id = bh_kont.id



LEFT JOIN (
SELECT bh_katd.id,
bh_katd.bh_kategorien_vorlagen_id AS BH_Kategorien_BH_Kategorien_Vorlagen_ID
FROM bh_kategorien AS bh_katd

) AS bh_kat
ON bh_kat.id = bh_buchungen.bh_kategorien_id

WHERE BH_Konten_BH_Kategorien_Vorlagen_ID = BH_Kategorien_BH_Kategorien_Vorlagen_ID


Am ende soll er bei der Auswahl der Kategorien nur die Kategorien aus der Kategorien_Vorlage nehmen, die im Konto angegeben ist. Diese aber vorher nochmals durch die bh_buchungsart gefiltert
 
Zurück