Archívum - Már 9, 2017 - Fórum téma
mysql joinra szűrés
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:Valamiért csak az első sort hajlandó visszaadni, holott a Tabla1 összes sorára szükségem lenne.
Pl.:
Tabla1 tartalma:Tabla2 tartalma:Tabla3 tartalma:A kapott eredménynek így kellene kinéznie:
■ 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
Pl.:
Tabla1 tartalma:
- Id | Data
- ---|-------
- 1 | data1
- ---|-------
- 2 | data2
- ---|-------
- 3 | data3
- Id | Tabla1Id | Data1
- ---|----------|-------
- 1 | 1 | data1
- ---|----------|-------
- 2 | 2 | data3
- 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
- Id | Data | Data1 | Numb
- ---|-------|-------|------
- 1 | data1 | data1 | 5
- ---|-------|-------|------
- 2 | data2 | data3 | 7
- ---|-------|-------|------
- 3 | data3 | NULL | 0