Vuoi qualcosa di più simile a questo:
SELECT TableA.*, TableB.*, TableC.*, TableD.*
FROM TableA
JOIN TableB
ON TableB.aID = TableA.aID
JOIN TableC
ON TableC.cID = TableB.cID
JOIN TableD
ON TableD.dID = TableA.dID
WHERE DATE(TableC.date)=date(now())
Nel tuo esempio, non stai effettivamente includendo TableD
. Tutto quello che devi fare è eseguire un altro join proprio come hai fatto prima.
Una nota:noterai che ho rimosso molte delle tue parentesi, poiché in realtà non sono necessarie nella maggior parte dei casi in cui le avevi, e aggiungo solo confusione quando provi a leggere il codice. Una corretta nidificazione è il modo migliore per rendere il codice leggibile e separato.