MySQL - Problema con join

   
Vista:

Problema con join

Publicado por Alejandro Stendelis (3 intervenciones) el 08/04/2016 15:58:31
Hola,

Tengo estas dos tablas

artículos

id nombre idcat idsubcat
1 n1 1 3
2 n2 1 4
3 n3 2 5


categorias y subcategorias

id nombre grupo
1 cat1 0
2 cat2 0
3 sub1 1
4 sub2 1
5 sub3 2

quiero traer todos los artículos con el nombre de la categoría y el nombre de la subcategoría incluidos

1 n1 cat1 sub1
2 n2 cat1 sub2
3 n3 cat2 sub3

como debo hacer la consulta
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema con join

Publicado por Gonzalo (103 intervenciones) el 08/04/2016 19:14:16
1
como debo hacer la consulta

Y... por lo menos deberías usar un manual, algún tutorial...

Francamente es una consutla demasiado básica. ¿Has leído ALGO del uso del JOIN?
¿Has hecho alguna prueba?
¿TE causa algún problema?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con join

Publicado por Alejandro (3 intervenciones) el 09/04/2016 04:09:40
Hola,

Si he realizado varias pruebas, no es mi primer select, pero debe de ser una laguna mental, y realmente no encuentro exactamente lo que necesito en ningún lugar.

Esta es la estructura del select original con el cual comencé, quizá luego me perdí y no logre que funcionara.


Select articulos.*,categorias.* from articulos
left join categorias on articulos.idcat = categorias.id
left join categorias on articulos.idsubcat=categorias.id


el tema es que me trae un solo nombre de la tabla categorias o me trae null

intente este cambio para renombrar el resultado de cada join

Select articulos.*,categorias.* from articulos
left join categorias as nombrecat on articulos.idcat = categorias.id
left join categorias as nombresubcat on articulos.idsubcat=categorias.id

Pero me da un error

luego intente simplemente en vez de un segundo join un and

Select articulos.*,categorias.* from articulos
left join categorias on articulos.idcat = categorias.id
and articulos.idsubcat=categorias.id

no devuelve el resultado que quiero,

se que estoy por el lado correcto, pero no doy con la tecla para que me devuelva un resultado que incluya el nombre de categoria y el de subcategoria en el mismo row
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jordi

Problema con join

Publicado por Jordi (4 intervenciones) el 10/04/2016 10:20:25
Hola Alejandro,

Entendiendo que la primera tabla se llama "articulos" y la segunda es una sola llamada "categorias"...

1
2
3
4
select a.id, a.nombre, c.nombre, sc.nombre
from articulos a
inner join categorias c on a.idcat = c.id
inner join categorias sc on a.idsubcat = sc.id;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con join

Publicado por Alejandro (3 intervenciones) el 10/04/2016 23:13:30
Gracias, solucionado.

Era una laguna mental, intente muchísimo y la solución fue una de las primeras, pero por alguna razón no me funcionó y seguí tratando y me perdí. Seguro que cuando genere el select correctamente algo escribi mal y seguí buscando otra solución.

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar