Hallo!
Ich habe folgendes
MySQL-Problem:
Ich habe eine Tabelle namens
page_series_main, welche eine 1:1 Beziehung zu 5 anderen Tabellen hat.
Da nicht in allen dieser 5 Tabellen pro Eintrag eine Beziehung bestehen muss, habe ich mich für OUTER LEFT JOINs entschieden. Jedoch habe ich da noch ein kleines Problem. Hier mal meine Abfrage:
SQL-Code:
SELECT sm.serie_id AS id, serie_title AS title, serie_image AS image, count(cp.serie_id) AS charguide,
serie_author AS author, serie_author_gender AS author_gender, count(sp.serie_id ) AS story,
count(ep.serie_id) AS epiguide, count(op.serie_id) AS opening, count(ssp.serie_id) AS syncspeaker,
count(mp.serie_id) AS manga
FROM page_series_main sm
NATURAL LEFT OUTER JOIN page_charguide_items cp
NATURAL LEFT OUTER JOIN page_story_pages sp
NATURAL LEFT OUTER JOIN page_epiguide_pages ep
NATURAL LEFT OUTER JOIN page_opening_pages op
NATURAL LEFT OUTER JOIN page_syncspeaker_pages ssp
NATURAL LEFT OUTER JOIN page_manga_pages mp
WHERE sm.serie_id = 1
AND serie_visible != 0
GROUP BY sm.serie_id
LIMIT 1;
Angenommen in
page_manga_pages gibt es keinen zugehörigen Eintrag, dann läuft alles so wie es soll. Wenn es jedoch z. B. in
page_epiguide_pages keinen zugehörigen Eintrag gibt, gibt es ein Problem und zwar werden dann weder
page_opening_pages,
page_opening_pages,
page_syncspeaker_pages noch
page_manga_pages auf einträge geprüft ("geJOINt"). Es erscheint mir logisch wieso das so ist (liegt ja klarerweise am LEFT JOIN), aber wie kann ich das unterbinden?
Habe schon an einen FULL OUTER JOIN gedacht (heißt nicht, dass dieser das erzielt was ich will, wäre lediglich ein Versuch gewesen), aber den gibt es in
MySQL leider nicht.
Wäre für jeden Tipp froh.
Grüße
Faux