MySQL-Client-Version: 4.1.22
hallo, hab da ein problem wo ich nicht weiterkomme. es geht um ein postkarten lexikon.
hier ist die abfrage für eine liste wo alle bundesländer mit zugehöreingen karten als anzahl ausgegeben werden sollen.
problem ist das die postkarten (tabelle card) 1 bis n-verknüpfungen mit der tabelle dak haben können.
diese wiederum haben eine geradlinige verknüpfung mit der stadteil (city)- stadt (stadt)- region (region)- land (c) ...
bsp.: eine karte aus Dresden hat die semperoper und die hofkirche als motiv. diese motive sind jeweils eine verknüpfung mit der tabelle dak, diese haben wiederum alle eine verknüpfung mit dem dem stadtteil (city)
heißt karte 123 hat 2 verschiedene motive (dak) und alle sind mit der selben stadt verknüpft (stadt)
wenn ich jetzt so die karten zähle dann bekomm ich aber falsche werte.
bei 2 motiven die mit der karte verknüpft sind hab ich dann auch 2 ergebnisse obwohl ich nur eines haben möchte.
bei 5 karten mit 2-3 motiven, gibt es dann in der land/region und stadtliste immer je karte 1-2 ergebnisse zuviel angezeigt.
was tun?
SELECT
count(card.id) AS card_anz,
region.id AS regionid,
region.region_de,
region.region_org,
c.id,
c.$lang_sql_c
FROM ka_c c
LEFT JOIN ka_region region ON c.id = region.c_id
LEFT JOIN ka_stadt stadt ON region.id = stadt.region_id
LEFT JOIN ka_city city ON stadt.id = city.stadt_id
LEFT JOIN ka_dkat_v_stadt dstadt ON city.id = dstadt.cityid
LEFT JOIN ka_dkat_v_ak dak ON dstadt.dkatid = dak.dkatid
Left JOIN ka_card card ON dak.akid = card.id
WHERE c.id = '$suche'
GROUP BY region.id
ORDER BY region.region_de ASC