ugrás a tartalomhoz

Archívum - Már 9, 2017 - Fórum téma

mysql joinra szűrés

Theo76 · 2017. Már. 9. (Cs), 09.51
Sziasztok!

Van 3 táblám, amik LEFT JOIN-al vannak összekapcsolva.
A Tabla1 és Tabla2 kapcsolatával nincs gond, viszont a Tabla3 több sornyi adatot tartalmazhat, amit szűrnöm kell, hogy csak bizonyos sorok jelenjenek meg, és abból az egyik oszlop adatait összekéne adni soronként.
Próbálkoztam ezzel a paranccsal:
  1. SELECT t1.*, t2.`Data1`, IFNULL(SUM(t3.`Numb`),0) AS `Numb`  
  2. FROM Tabla1 t1  
  3. LEFT JOIN `Tabla2` t2 on t2.`Tabla1Id` = t1.`Id`  
  4. LEFT JOIN `Tabla3` t3 on t3.`Tabla1Id` = t1.`Id` AND t3.`Status` = 3  
Valamiért csak az első sort hajlandó visszaadni, holott a Tabla1 összes sorára szükségem lenne.

Pl.:
Tabla1 tartalma:
  1. Id | Data    
  2. ---|-------  
  3. 1  | data1   
  4. ---|-------  
  5. 2  | data2  
  6. ---|-------  
  7. 3  | data3  
Tabla2 tartalma:
  1. Id | Tabla1Id | Data1  
  2. ---|----------|-------  
  3. 1  | 1        | data1  
  4. ---|----------|-------  
  5. 2  | 2        | data3  
Tabla3 tartalma:
  1. Id | Tabla1Id | Numb | Status  
  2. ---|----------|------|--------  
  3. 1  | 1        | 3    | 0  
  4. ---|----------|------|--------  
  5. 2  | 1        | 2    | 1  
  6. ---|----------|------|--------  
  7. 3  | 2        | 7    | 3  
  8. ---|----------|------|--------  
  9. 4  | 1        | 6    | 3  
  10. ---|----------|------|--------  
  11. 5  | 2        | 2    | 4  
  12. ---|----------|------|--------  
  13. 6  | 1        | 1    | 1  
A kapott eredménynek így kellene kinéznie:
  1. Id | Data  | Data1 | Numb  
  2. ---|-------|-------|------  
  3. 1  | data1 | data1 | 5  
  4. ---|-------|-------|------  
  5. 2  | data2 | data3 | 7  
  6. ---|-------|-------|------  
  7. 3  | data3 | NULL  | 0