k3nguruh
Erfahrenes Mitglied
Hallo,
hier mal mein Problem....
Tabelle Mitglieder (fw_mem_daten) (pid => PRIMARY, AUTO_INCREMENT)
Tabelle Dienstplan (fw_dienst_plan) (id => PRIMARY, AUTO_INCREMENT)
Tabelle Dienstteilnahme (fw_dienst_teilnahme) (id = id von fw_dienst_plan, pid = pid von fw_mem_daten)
Wie man hierraus hoffentlich ersehen kann, war die PID 2 zum Zeitpunk des Dienstes von ID 1 noch in der ABTEILUNG 1. Irgendwann danach muss dieser dann die Abteilung gewechselt haben.
Was möchte ich jetzt eigentlich haben?
Es sollen erstmal alle PIDs angezeigt werden die (noch) in ABTEILUNG 1 sind. Desweiteren sollen auch die PIDs angezeigt werden, die in der Dienstteilnahme drinstehen, egal in welcher Abteilung sie sich jetzt befinden.
Es sollen auch nicht alle Dienstteilnahmen ausgegeben werden sondern nur die übermittelt werden. Zum Bsp. wären das jetzt nur die ID 1 und 2
Gibt mir alle Mitglieder aus. bei der ID wird mit NULL aufgefüllt, wenn kein Eintrag gefunden wurde. Also erstmal alles richtig.
Wie bekomme ich jetzt noch die Einschränkung hin, dass er mir wo die ID NULL ist, nur Mitglieder der Abteilung 1 ausgegeben werden?
geht das überhaubt mit joins?
hier mal mein Problem....
Tabelle Mitglieder (fw_mem_daten) (pid => PRIMARY, AUTO_INCREMENT)
Code:
pid | vorname | nachname | abteilung
1 | th.... | fir..... | 1
2 | al.... | sch..... | 2
3 | pf.... | do...... | 1
Tabelle Dienstplan (fw_dienst_plan) (id => PRIMARY, AUTO_INCREMENT)
Code:
id | abteilung | beginndatum | enddatum
1 | 1 | 2011-01-01 08:00:00 | 2011-01-01 16:00:00
2 | 1 | 2011-01-02 08:00:00 | 2011-01-02 16:00:00
Tabelle Dienstteilnahme (fw_dienst_teilnahme) (id = id von fw_dienst_plan, pid = pid von fw_mem_daten)
Code:
id | pid | teilnahme
1 | 1 | anwesend
1 | 2 | anwesend
1 | 3 | entschuldigt
2 | 1 | anwesend
2 | 3 | anwesend
Wie man hierraus hoffentlich ersehen kann, war die PID 2 zum Zeitpunk des Dienstes von ID 1 noch in der ABTEILUNG 1. Irgendwann danach muss dieser dann die Abteilung gewechselt haben.
Was möchte ich jetzt eigentlich haben?
Es sollen erstmal alle PIDs angezeigt werden die (noch) in ABTEILUNG 1 sind. Desweiteren sollen auch die PIDs angezeigt werden, die in der Dienstteilnahme drinstehen, egal in welcher Abteilung sie sich jetzt befinden.
Es sollen auch nicht alle Dienstteilnahmen ausgegeben werden sondern nur die übermittelt werden. Zum Bsp. wären das jetzt nur die ID 1 und 2
PHP:
SELECT md.pid, CONCAT( md.nachname, ', ', md.vorname ) AS mitglied, dt.id
FROM fw_mem_daten AS md
LEFT JOIN fw_dienst_teilnahme AS dt ON md.pid = dt.pid
AND (
dt.id
IN ( 1, 2 )
)
ORDER BY mitglied
Gibt mir alle Mitglieder aus. bei der ID wird mit NULL aufgefüllt, wenn kein Eintrag gefunden wurde. Also erstmal alles richtig.
Wie bekomme ich jetzt noch die Einschränkung hin, dass er mir wo die ID NULL ist, nur Mitglieder der Abteilung 1 ausgegeben werden?
geht das überhaubt mit joins?