Witam,
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

  1. SELECT
  2. r.reportID, r.clientID, reg1.val AS val1
  3. FROM reports
  4. AS r
  5. LEFT JOIN report_regs AS reg1 ON (r.reportID = reg1.reportID AND (reg1.itemID='1' OR reg1.reportID IS NULL) )
  6. GROUP BY r.reportID


lecz z jakiegos powodu nie zwraca mi ono pustych rekordow.

Kilkukrotne zlaczenie wygladalo by nastepujaco
  1. SELECT
  2. r.reportID, r.clientID, reg1.val AS val1, reg2.val AS val2, reg3.val AS val3
  3. FROM reports
  4. AS r
  5. LEFT JOIN report_regs AS reg1 ON (r.reportID = reg1.reportID AND (reg1.itemID='1' OR reg1.reportID IS NULL))
  6. LEFT JOIN report_regs AS reg2 ON (r.reportID = reg2.reportID AND (reg2.itemID='2' OR reg2.reportID IS NULL) )
  7. LEFT JOIN report_regs AS reg3 ON (r.reportID = reg3.reportID AND (reg3.itemID='3' OR reg3.reportID IS NULL) )
  8. 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