du-doch-nicht
Banned
- Registriert
- Juni 2014
- Beiträge
- 9
Hallo, ich versuche gerade alle Daten über LEFT JOIN auszugeben.
Die Haupttabelle ist "`auftraege_druckjobs`" die mit der "`kontakte`"-Tabelle verknüpft wird um den Druckauftrag einen Kunden zuzuordnen. Nun sollen auch die Druckdateien "`auftraege_druckdateien`" (können mehrere sein) bei der Auflistung mit eingebunden werden. Diese werden gezählt und gruppiert.
Da nicht zu jedem Druckauftrag Dateien vorliegen, soll der Auftrag trotzdem angezeigt werden.
Genau hier liegt das Problem. Bei der Ausgabe wird nur ein Kunde mit 0 Druckdateien ausgegeben und die 2 weiteren nicht, bei denen auch noch keine Druckdateien vorhanden sind, wo liegt da der Fehler?
Datenbank
`kontakte`
`auftraege_druckjobs`
`auftraege_druckdateien`
MySQL:
Ausgabe:
Fehlende Ausgabe:
Warum werden die letzten beiden Kunden nicht ausgegeben?
Die Haupttabelle ist "`auftraege_druckjobs`" die mit der "`kontakte`"-Tabelle verknüpft wird um den Druckauftrag einen Kunden zuzuordnen. Nun sollen auch die Druckdateien "`auftraege_druckdateien`" (können mehrere sein) bei der Auflistung mit eingebunden werden. Diese werden gezählt und gruppiert.
Da nicht zu jedem Druckauftrag Dateien vorliegen, soll der Auftrag trotzdem angezeigt werden.
Genau hier liegt das Problem. Bei der Ausgabe wird nur ein Kunde mit 0 Druckdateien ausgegeben und die 2 weiteren nicht, bei denen auch noch keine Druckdateien vorhanden sind, wo liegt da der Fehler?
Datenbank
`kontakte`
Code:
------------+--------
kd_id (AI) | kd_name
------------+--------
1 | Firma 1
2 | Firma 2
3 | Firma 3
4 | Firma 4
------------+--------
`auftraege_druckjobs`
Code:
------------+-----------+------------+------------+------------
dj_id (AI) | dj_kd_id | dj_status | dj_termin | dj_sichtbar
------------+-----------+------------+------------+------------
1 | 2 | 1 | 2018-01-01 | 1
2 | 1 | 0 | 2017-12-28 | 1
3 | 3 | 2 | 2017-12-20 | 1
4 | 3 | 1 | 2017-12-21 | 1
5 | 5 | 2 | 2018-01-01 | 1
------------+-----------+------------+------------+------------
`auftraege_druckdateien`
Code:
----------------------------------
da_id (AI) | da_dj_id | da_datei
------------+-----------+---------
1 | 1 | Datei 1
2 | 1 | Datei 2
3 | 1 | Datei 3
4 | 2 | Datei 1
------------+-----------+---------
MySQL:
PHP:
SELECT
*, COUNT(`da`.`da_dj_id`) AS `AnzahlDaten`
FROM
`auftraege_druckjobs` AS `dj`
LEFT JOIN
`kontakte` AS `kd`
ON
`kd`.`kd_id` = `dj`.`dj_kd_id`
LEFT JOIN
`auftraege_druckdateien` AS `da`
ON
`da`.`da_dj_id` = `dj`.`dj_id`
WHERE
`dj`.`dj_sichtbar` = '1'
GROUP BY
`da`.`da_dj_id`
ORDER BY
`dj`.`dj_termin` DESC
Ausgabe:
HTML:
Firma 2 + 3 Druckdateien 01.01.2018 1
Firma 1 Datei 1 28.12.2017 0
Firma 3 NULL 20.12.2017 2
Fehlende Ausgabe:
HTML:
Firma 3 NULL 21.12.2017 1
Firma 4 NULL 01.01.2018 2
Warum werden die letzten beiden Kunden nicht ausgegeben?