Forum » Izdelava spletišč » mySQL izpis many-to-many to matrix
mySQL izpis many-to-many to matrix
čuhalev ::
Imam tri tabele, 2 sta šifranta, 1 tabela je many-to-many med tema tabelama. Torej primer:
A: id_osebe, ime_osebe
B: id_predmeta, ime_predmeta
C: id, id_osebe, id_predmeta, kolicina
Tabela C tu pove, kdo se koliko česa lasti. Sedaj pa bi rad to prikazal z matriko, torej želim izpis, v katerem imam v vsaki vrstici podatke po stoplcih (id_osebe, ime_osebe ter kolicine po vseh id_predmeta (kolikor pač jih je). Seveda lahko grem (na roke z enim SELECT po id_osebe) in potem z drugim SELECT FROM C ... WHERE id_osebe=x, a bi rad to združil v eno poizvedbo.
Kolikor sem našel na spletu gre za pivot table, vendar so v njem imena vrstic id_predmeta, ki postanejo potem stolpci določeni na roko, meni pa je v redu, če je samo P##, kjer je ## pač id_predmeta.
A: id_osebe, ime_osebe
B: id_predmeta, ime_predmeta
C: id, id_osebe, id_predmeta, kolicina
Tabela C tu pove, kdo se koliko česa lasti. Sedaj pa bi rad to prikazal z matriko, torej želim izpis, v katerem imam v vsaki vrstici podatke po stoplcih (id_osebe, ime_osebe ter kolicine po vseh id_predmeta (kolikor pač jih je). Seveda lahko grem (na roke z enim SELECT po id_osebe) in potem z drugim SELECT FROM C ... WHERE id_osebe=x, a bi rad to združil v eno poizvedbo.
Kolikor sem našel na spletu gre za pivot table, vendar so v njem imena vrstic id_predmeta, ki postanejo potem stolpci določeni na roko, meni pa je v redu, če je samo P##, kjer je ## pač id_predmeta.
čuhalev ::
V bistvu lahko na tabelo C gledamo kot sparse zapis matrike, ki jo bi rad bral po vrsticah (id_osebe) in stolpcih (id_predmeta).
nyler ::
Če te pravilno zastopim...
SELECT * FROM C
INNER JOIN A on C.id_osebe=A.id_osebe
INNER JOIN B on C.id_predmet=B.id_predmet
WHERE A.id_osebe=x
Mogoče tole če te pravilno zastopim.
SELECT * FROM C
INNER JOIN A on C.id_osebe=A.id_osebe
INNER JOIN B on C.id_predmet=B.id_predmet
WHERE A.id_osebe=x
Mogoče tole če te pravilno zastopim.
Zgodovina sprememb…
- spremenilo: nyler ()
čuhalev ::
Od uča na tale stavek lahko rečem, da se A.id_osebe ene osebe (v tem primeru osebe x) lahko pojavi v več kot v 1 vrstici, če ima ta v posesti več predmetov. Kar želim jaz je izpis:
iz A:
B:
in C
| | jajce | hren | avokado | ajvar 7 | Janez | 1 | 0 | 2 | 88
iz A:
7 | Janez
B:
1 | jajce 2 | hren 3 | avokado 4 | ajvar
in C
7 | 1 | 1 7 | 3 | 2 7 | 4 | 88
Zgodovina sprememb…
- spremenil: čuhalev ()
klemenSLO ::
Z SQL bi lahko uporabil dinamični pivot. google vrne neke rezultate tudi za dynamic pivot Mysql .... nisem pa nikoli probal....
Life is not measured in minutes, but in MOMENTS...
Zgodovina sprememb…
- spremenil: klemenSLO ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Matura 2 predmet E-redovalnicaOddelek: Programiranje | 1441 (1075) | FiR3F0X |
» | [SQL] PgAdmin preprosto vprasanje povezano s stolpci v tabeliOddelek: Programiranje | 2207 (1566) | Cvele2011 |
» | namizna aplikacija v javiOddelek: Programiranje | 1897 (1410) | urosz |
» | SQL vprašanjeOddelek: Izdelava spletišč | 2677 (2240) | jerneju |
» | Sortiranje podatkov v PHPjuOddelek: Programiranje | 1201 (1051) | poweroff |