Diferència entre revisions de la pàgina «Consultes recursives: bikeshop»
Salta a la navegació
Salta a la cerca
(Es crea la pàgina amb «=Introducció= (TBD) =Base de dades bikeshop= Mirem la tala '''CATEGORIA''': <pre> select id_cat, categoria, id_parent from CATEGORIA +--------+----------------------...».) |
|||
| Línia 46: | Línia 46: | ||
| 17 | Cuadros de Gravel | 15 | 15 | Cuadros | | | 17 | Cuadros de Gravel | 15 | 15 | Cuadros | | ||
| 18 | Horquillas | 15 | 15 | Cuadros | | | 18 | Horquillas | 15 | 15 | Cuadros | | ||
| + | ... | ||
| + | |||
168 files | 168 files | ||
</pre> | </pre> | ||
| − | Amb un ''LEFT OUTER JOIN'' tornem a recuperar els 173 valors (les categories que no tenen pare) | + | Hem perdut 5 categories. Amb un ''LEFT OUTER JOIN'' tornem a recuperar els 173 valors (les categories que no tenen pare) |
<pre> | <pre> | ||
select C2.categoria cat_pare, C1.categoria cat_fill from CATEGORIA C1 | select C2.categoria cat_pare, C1.categoria cat_fill from CATEGORIA C1 | ||
| Línia 67: | Línia 69: | ||
| Bicicletas | Bicicletas de Ciclocross | | | Bicicletas | Bicicletas de Ciclocross | | ||
| Bicicletas | Bicicletas Contrarreloj | | Bicicletas | Bicicletas Contrarreloj | ||
| + | ... | ||
173 files | 173 files | ||
| Línia 89: | Línia 92: | ||
| Transmisión | Pedales | | | Transmisión | Pedales | | ||
| Transmisión | Transmisión eléctrica | | | Transmisión | Transmisión eléctrica | | ||
| + | ... | ||
| + | |||
33 files | 33 files | ||
</pre> | </pre> | ||
| Línia 123: | Línia 128: | ||
| 13 | Bicicletas Niños | 6 | 6 | Bicicletas | 1 | Carretera | | | 13 | Bicicletas Niños | 6 | 6 | Bicicletas | 1 | Carretera | | ||
| 14 | Bicicletas eléctricas | 6 | 6 | Bicicletas | 1 | Carretera | | | 14 | Bicicletas eléctricas | 6 | 6 | Bicicletas | 1 | Carretera | | ||
| − | </pre> | + | ... |
| + | |||
| + | 173 files</pre> | ||
<pre> | <pre> | ||
Revisió del 07:55, 7 feb 2022
Introducció
(TBD)
Base de dades bikeshop
Mirem la tala CATEGORIA:
select id_cat, categoria, id_parent from CATEGORIA +--------+-----------------------------------------------+-----------+ | id_cat | categoria | id_parent | +--------+-----------------------------------------------+-----------+ | 1 | Carretera | NULL | | 2 | MTB | NULL | | 3 | E-BIKE | NULL | | 4 | BMX | NULL | | 5 | CIUDAD | NULL | | 6 | Bicicletas | 1 | | 7 | Bicicletas de Carrera | 6 | | 8 | Bicicletas de Gravel | 6 | | 9 | Bicicletas de Ciclocross | 6 | | 10 | Bicicletas Contrarreloj | 6 | | 11 | Bicicletas de pista | 6 | ... 173 files
Volem visualitzar 2 nivells:
select C1.id_cat, C1.categoria, C1.id_parent, C2.id_cat, C2.categoria from CATEGORIA C1 INNER JOIN CATEGORIA C2 ON C1.id_parent=C2.id_cat; +--------+-----------------------------------------------+-----------+--------+-----------------------------------+ | id_cat | categoria | id_parent | id_cat | categoria | +--------+-----------------------------------------------+-----------+--------+-----------------------------------+ | 6 | Bicicletas | 1 | 1 | Carretera | | 7 | Bicicletas de Carrera | 6 | 6 | Bicicletas | | 8 | Bicicletas de Gravel | 6 | 6 | Bicicletas | | 9 | Bicicletas de Ciclocross | 6 | 6 | Bicicletas | | 10 | Bicicletas Contrarreloj | 6 | 6 | Bicicletas | | 11 | Bicicletas de pista | 6 | 6 | Bicicletas | | 12 | Bicicletas para mujeres | 6 | 6 | Bicicletas | | 13 | Bicicletas Niños | 6 | 6 | Bicicletas | | 14 | Bicicletas eléctricas | 6 | 6 | Bicicletas | | 15 | Cuadros | 1 | 1 | Carretera | | 16 | Cuadros de carretera | 15 | 15 | Cuadros | | 17 | Cuadros de Gravel | 15 | 15 | Cuadros | | 18 | Horquillas | 15 | 15 | Cuadros | ... 168 files
Hem perdut 5 categories. Amb un LEFT OUTER JOIN tornem a recuperar els 173 valors (les categories que no tenen pare)
select C2.categoria cat_pare, C1.categoria cat_fill from CATEGORIA C1 LEFT OUTER JOIN CATEGORIA C2 ON C1.id_parent=C2.id_cat; +-----------------------------------+-----------------------------------------------+ | cat_pare | cat_fill | +-----------------------------------+-----------------------------------------------+ | NULL | Carretera | | NULL | MTB | | NULL | E-BIKE | | NULL | BMX | | NULL | CIUDAD | | Carretera | Bicicletas | | Bicicletas | Bicicletas de Carrera | | Bicicletas | Bicicletas de Gravel | | Bicicletas | Bicicletas de Ciclocross | | Bicicletas | Bicicletas Contrarreloj ... 173 files
Volem filtrar el que penja de Bicicletas > CIUDAD > transmisión filtrem:
select C2.categoria cat_pare, C1.categoria cat_fill from CATEGORIA C1 LEFT OUTER JOIN CATEGORIA C2 ON C1.id_parent=C2.id_cat WHERE C2.categoria='Transmisión'; +--------------+---------------------------------------+ | cat_pare | cat_fill | +--------------+---------------------------------------+ | Transmisión | Cables y fundas | | Transmisión | Cassettes y cadenas | | Transmisión | Cambios y desviadores | | Transmisión | Manetas | | Transmisión | Pedaliers | | Transmisión | Pedales | | Transmisión | Transmisión eléctrica | ... 33 files
Ho fem malament perquè la categoria Transmisión no és única.
33 files perquè hem trobat:
- Bicicletas > carretera > Transmisión
- Bicicletas > MTB > Transmisión
- Bicicletas > BMX > BMX FreeStyle > Transmisión
- Bicicletas > CIUDAD > Transmisión
Volem doncs ara visualitzar els 3 nivells
select C1.id_cat, C1.categoria, C1.id_parent, C2.id_cat, C2.categoria, C3.id_cat, C3.categoria from ((CATEGORIA C1 LEFT OUTER JOIN CATEGORIA C2 ON C1.id_parent=C2.id_cat) LEFT OUTER JOIN CATEGORIA C3 ON C2.id_parent=C3.id_cat); +--------+-----------------------------------------------+-----------+--------+-----------------------------------+--------+---------------+ | id_cat | categoria | id_parent | id_cat | categoria | id_cat | categoria | +--------+-----------------------------------------------+-----------+--------+-----------------------------------+--------+---------------+ | 1 | Carretera | NULL | NULL | NULL | NULL | NULL | | 2 | MTB | NULL | NULL | NULL | NULL | NULL | | 3 | E-BIKE | NULL | NULL | NULL | NULL | NULL | | 4 | BMX | NULL | NULL | NULL | NULL | NULL | | 5 | CIUDAD | NULL | NULL | NULL | NULL | NULL | | 6 | Bicicletas | 1 | 1 | Carretera | NULL | NULL | | 7 | Bicicletas de Carrera | 6 | 6 | Bicicletas | 1 | Carretera | | 8 | Bicicletas de Gravel | 6 | 6 | Bicicletas | 1 | Carretera | | 9 | Bicicletas de Ciclocross | 6 | 6 | Bicicletas | 1 | Carretera | | 10 | Bicicletas Contrarreloj | 6 | 6 | Bicicletas | 1 | Carretera | | 11 | Bicicletas de pista | 6 | 6 | Bicicletas | 1 | Carretera | | 12 | Bicicletas para mujeres | 6 | 6 | Bicicletas | 1 | Carretera | | 13 | Bicicletas Niños | 6 | 6 | Bicicletas | 1 | Carretera | | 14 | Bicicletas eléctricas | 6 | 6 | Bicicletas | 1 | Carretera | ... 173 files
select C3.categoria cat_avi, C2.categoria cat_pare, C1.categoria cat_fill from ((CATEGORIA C1 LEFT OUTER JOIN CATEGORIA C2 ON C1.id_parent=C2.id_cat) LEFT OUTER JOIN CATEGORIA C3 ON C2.id_parent=C3.id_cat) WHERE C3.categoria='CIUDAD' AND C2.categoria='Transmisión'; +---------+--------------+---------------------------------------+ | cat_avi | cat_pare | cat_fill | +---------+--------------+---------------------------------------+ | CIUDAD | Transmisión | Cables y fundas | | CIUDAD | Transmisión | Cubrecadenas | | CIUDAD | Transmisión | Cassettes | | CIUDAD | Transmisión | Cadenas | | CIUDAD | Transmisión | Mandos de cambio | | CIUDAD | Transmisión | Cambios | | CIUDAD | Transmisión | Pedaliers, Cajas del pedalier, Platos | +---------+--------------+---------------------------------------+
creat per Joan Quintana Compte, febrer 2022