Svenchen: MySql : Beste Lösung für Abfrage über mehrere Tabellen

Beitrag lesen

Hallo,

ich bin mir nicht sicher was die beste(n) Abfrage(n?) für folgendes Problem ist.

Tabellen(Kurzfassung mit Beispieldaten) die bisher gegeben sind:
Tabelle "kinder"
| kindid | elternid | nachname   | vorname    | gebdatum     | betreuungszeit | gruppenid  | aufnahme_ab   | kuendigung_zum  | aktiviert |
| 1      | 1        | Amuster    | Amy        | 2008-09-20   | 6              | 1       | 2010-07-01    | 2011-09-01      |     1     |
| 2      | 2        | Bmuster    | Bert       | 2007-01-06   | 8              | 2       | 2008-01-01    | 0000-00-00      |     1     |
| 3      | 3        | Cmuster    | Celine     | 2005-08-19   | 10             | 2       | 2006-05-01    | 0000-00-00      |     1     |
| 4      | 1        | Amuster    | Dennis     | 2009-11-03   | 8              | 2       | 2006-09-01    | 0000-00-00      |     1     |
| 5      | 4        | Emuster    | Elena      | 2009-03-17   | 10             | 1       | 2009-10-01    | 0000-00-00      |     0     |
| 6      | 5        | Fmuster    | Falko      | 2006-08-16   | 6              | 3       | 2007-01-01    | 0000-00-00      |     1     |

Tabelle "eltern"
| elternid | anrede  | nachname_e1 | vorname_e1 | nachname_e2 | vorname_e2 | straße          | plz   | ort          |
| 1        | Familie | Amuster     | Anne       | Amuster     | Andre      | Allee 3         | 00345 | Musterstadt  |
| 2        | Frau    | Bmuster     | Birgit     |             |            | Baumweg 16      | 00345 | Musterstadt  |
| 3        | Herr    | Cmuster     | Cris       |             |            | Celler Str. 39a | 00346 | Musterhausen |
| 4        | Familie | Emuster     | Elke       | Ecke        | Emil       | Edenweg 12      | 00346 | Musterhausen |
| 5        | Familie | Fmuster     | Fiona      | Fmuster     | Friedrich  | Feldstr. 99     | 00345 | Musterstadt  |

Tabelle "gruppen"
| gruppenid | bezeichnung |
| 1         | Krümel      |
| 2         | Zwerge      |
| 3         | Spatzen     |
| 4         | Bienen      |

Abfrage bisher nach Namen, Betreuungszeit und Adresse aller Kinder der Gruppe z.B. 1 ab Datum z.B. 01.09.2011:

  
SELECT CONCAT(t1.nachname,', ',t1.vorname) AS name, t1.betreuungszeit, t1.aufnahme_ab, t1.kuendigung_zum, CONCAT(t2.straße,' - ', t2.plz,' ', t2.ort) AS adresse  
FROM kinder AS t1, eltern AS t2  
WHERE t2.elternid = t1.elternid  
AND t1.gruppeid = 1  
AND t1.betreuungszeit > 0  
AND t1.aktiviert =1  
AND t1.aufnahme_ab <= '2011-09-01'  
AND (  
    t1.kuendigung_zum = '0000-00-00'  
    OR t1.kuendigung_zum IS NULL  
    OR t1.kuendigung_zum > '2011-09-01'  
)  
ORDER BY name  

Nun ist folgende Tabelle hinzugekommen:
kinder_zukunft
| zid | kindid | gueltig_ab | betreuungszeit |  gruppe   | aktiviert |
|  1  |   2    | 2011-10-01 |    10          |   2       |     1     |  -- Änderung 'betreuungszeit'
|  2  |   3    | 2011-10-01 |    10          |   4       |     1     |  -- Änderung 'gruppe'
|  3  |   2    | 2011-11-01 |    6           |   2       |     1     |  -- Änderung erneut 'betreuungszeit'
|  4  |   5    | 2011-09-01 |    10          |   1       |     1     |  -- Änderung 'aktiviert'

Abfrage neu: Namen, Betreuungszeit und Adresse aller Kinder der Gruppe x  ab 01.09.2011 unter Berücksichtigung der Tabelle "kinder_zukunft" ?

Mein Lösungsansatz wäre:
Vor der eigentlichen Abfrage eine Temporäre Tabelle "kinder_temp" anzulegen und die Werte aus "kinder" mit denen von "kinder_zukunft" (welche schon von Bedeutung sind) zu verschmelzen.

Statt die Tabelle "kinder"  würde ich dann "kinder_temp" abfragen.
Allerdings habe ich bedenken von der Effizienz des Vorhabens.
Die Tabellen "kinder" und "kinder_zukunft" haben eigentlich noch mehr Spalten und es kann durchaus vorkommen das direkt hintereinander verschieden Daten abgefragt werden. Wenn dann jedes mal ein anderes Datum angegeben wird - hmm... ich weiß nicht was denkt ihr?
Oder doch Sub-Selects, aber geht das überhaupt?
Ich bin absolut kein Sql-Experte, bin immer froh wenn es irgendwie richtig und zuverlässig funktioniert.
Ach so DBMS ist MySql 5.5.

Gruß Svenchen