mam nastepujacy problem.
Probuje napisac zapytanie ktore w jednym rekordzie wyciagalo by z bazy dane jakiegos tam raportu do ktorego sa zlaczenia po id raportu z osobna tabela gdzie zawarte sa id raportu, id produktu i inne dane. Tzn
1 tabela reports posiada np reportID, date, clientID.....
2. tabela report_regs posiada reportID, itemID, val
Poniewaz probuje kilkuktornie zlaczyc reports z report_regs probuje okreslic po ktorym itemID ma laczyc dane
Na probe napisalem 1 krotne zlaczenie
SELECT r.reportID, r.clientID, reg1.val AS val1 FROM reports AS r LEFT JOIN report_regs AS reg1 ON (r.reportID = reg1.reportID AND (reg1.itemID='1' OR reg1.reportID IS NULL) ) GROUP BY r.reportID
lecz z jakiegos powodu nie zwraca mi ono pustych rekordow.
Kilkukrotne zlaczenie wygladalo by nastepujaco
SELECT r.reportID, r.clientID, reg1.val AS val1, reg2.val AS val2, reg3.val AS val3 FROM reports AS r LEFT JOIN report_regs AS reg1 ON (r.reportID = reg1.reportID AND (reg1.itemID='1' OR reg1.reportID IS NULL)) LEFT JOIN report_regs AS reg2 ON (r.reportID = reg2.reportID AND (reg2.itemID='2' OR reg2.reportID IS NULL) ) LEFT JOIN report_regs AS reg3 ON (r.reportID = reg3.reportID AND (reg3.itemID='3' OR reg3.reportID IS NULL) ) GROUP BY r.reportID
...I generalnie dziala tylko nie zwraca NULLi jesli danego itemID nie znajdzie w report_regs
Probowalem tez 1000 innych wariacji na czuja czy cos nie pojdzie, np natural join zwraca mi to samo, JOIN tez, ciagle nie ma rekordow gdzie brakuje ktoregos z itemID
Tonacy brzytwy sie chwyta.... Juz tyle nad tym siedze ze chyba zglupialem do reszty. Bede wdzieczny za pomoc
Help!!!
Dzieki z gory