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:
SELECT t1.*, t2.`Data1`, IFNULL(SUM(t3.`Numb`),0) AS `Numb`
FROM Tabla1 t1
LEFT JOIN `Tabla2` t2 on t2.`Tabla1Id` = t1.`Id`
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:
Id | Data  
---|-------
1  | data1 
---|-------
2  | data2
---|-------
3  | data3
Tabla2 tartalma:
Id | Tabla1Id | Data1
---|----------|-------
1  | 1        | data1
---|----------|-------
2  | 2        | data3
Tabla3 tartalma:
Id | Tabla1Id | Numb | Status
---|----------|------|--------
1  | 1        | 3    | 0
---|----------|------|--------
2  | 1        | 2    | 1
---|----------|------|--------
3  | 2        | 7    | 3
---|----------|------|--------
4  | 1        | 6    | 3
---|----------|------|--------
5  | 2        | 2    | 4
---|----------|------|--------
6  | 1        | 1    | 1
A kapott eredménynek így kellene kinéznie:
Id | Data  | Data1 | Numb
---|-------|-------|------
1  | data1 | data1 | 5
---|-------|-------|------
2  | data2 | data3 | 7
---|-------|-------|------
3  | data3 | NULL  | 0