yo,
pro Adresssatz kann ich in mehreren Tabellen Datensätze haben:
ADRESSE
id nname vname
11 Meyer Alfred
der name dieser tabelle ist ein wenig verwirrend, da letztlich dort personen (kunden ?) stehen. eventuell ist es nur ein auszug der tabelle, aber trotzdem habdelt es sich eher um personen und weniger um adressen
ANWESEMHEIT
id adress_id stunde
99 11 5
98 11 6
97 11 7
das sieht so aus, als wenn es sich um "von bis" zeiten handelt, und man könnte diese in einem datensatz zusammenfügen anstelle jede stunde festzuhalten. mich wundert, dass es kein datum gibt.
GESPRAECHSPARTNER
id besucher_id aussteller_id
55 11 4711
56 11 0815
EVENTWUENSCHE
id adress_id event_id
22 11 3215
23 11 6921
anwesenheit, gesprächspartner und eventwünsche könnte man eventuell zu einer tabelle (Treffen) zusammenfassen, falls sie alle in einer 1:1 beziehung stehen, sprich zu einem treffen ein gesprächparnter und ein eventwunsch. ist aber nur eine vermutung von mir, da müsste man dein umgebung besser kennen.
adress_id anz_stunden anz_partner anz_events
11 3 2 2
Habe es mit LEFT JOIN probiert, aber da potenziert sich die Anzahl der Datensätze unkontrolliert, die Summen sind zu hoch.
ist auch klar, weil die beziehungen fehlen, sprich zu welcher stunde hat er welchen gesprächpartner gehabt oder welche eventwünsche in welcher stunde. da diese beziehungen fehlen, nimmt er einfach alle möglichen kombinationen bei deinen join. wenn du wie oben bereits angesprochen alles in eine tabelle bekommst und es sich um 1:1 beziehungen handelt, dann löst sich das problem von ganz alleine.
nun aber genug genörgelt, zurück zu deiner abfrage. eine mögliche lösung, die mir spontan einfällt, ist der UNION operator, wobei ich mir bei mysql nicht sicher bin, aber welcher version es unterstützt wird. unterabfragen sollten es auch können, diese gehen aber definitiev erst ab 4.1+.
aber bevor man eine lösung ausarbeitet, vielleicht solltest du noch mal über die fehlenden beziehungen nachdenken.
Ilja