Zadanie: stworzyć zapytanie, które wyciągnie informacje o treści związanej z węzłem drzewa dla danego profilu. Jeżeli dla kombinacji węzeł/profil nie ma treści, powinno zwrócić przy odpowiednim profilu NULL
mam taki kod:
$profileQuery ->where('n.nodeId = ?', $nodeId) ;
co generuje taki kod:
SELECT p.profileId, p.name AS profileName, n.contentId FROM profile p LEFT JOIN node_content n ON n.profileId = p.profileId WHERE n.nodeId = $nodeId
nie dziala on jednak prawidłowo - umieszczenie warunku dla nodeId w klauzuli where blokuje wyświetlanie pustych profili. Muszę przenieść ten warunek do warunków złączenia, czyli uzyskać taki kod:
SELECT p.profileId, p.name AS profileName, n.contentId FROM profile p LEFT JOIN node_content n ON n.profileId = p.profileId AND n.nodeId = $nodeId
Jak to elegancko zapisać w kodzie PHP, bez chamskiego pisania:
->joinLeft(array('n' => 'node_content'), "n.profileId = p.profileId and n.nodeId = $nodeId" , 'n.contentId')
czyli żeby korzystać w dobrodziejstw filtrowania parametrów tak jak w metodzie where()?