Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Consulta obtener el nombre segun id

Estas en el tema de Consulta obtener el nombre segun id en el foro de Mysql en Foros del Web. Compañeros estoy algo oxidado en consultas, espero puedan ayudar con este problema que tengo, tengo 2 tablas. La primera tabla es items y la segunda ...
  #1 (permalink)  
Antiguo 04/05/2013, 16:44
 
Fecha de Ingreso: septiembre-2010
Mensajes: 64
Antigüedad: 13 años, 7 meses
Puntos: 5
Pregunta Consulta obtener el nombre segun id

Compañeros estoy algo oxidado en consultas, espero puedan ayudar con este problema que tengo, tengo 2 tablas.
La primera tabla es items y la segunda categorias.
La tabla categorias contiene: id, nombre
Cita:
1 construccion
2 mineria
3 limpieza
4 ferreteria
La tabla items: id, nombre, id_categoria
Cita:
1 cemento 1
2 casco 2
3 detergente 3
4 candado 4
Cada items pertenece a cada categoria segun el id de la categoria:
Por ejemplo el item cemento tiene el id_categoria 1 por lo que perteneceria a la categoria construccion.

Mi problema es como hago la consulta para mostrar los items pero con su nombre respectivo de la categoria.

Tengo esta consulta:
Código MySQL:
Ver original
  1. SELECT * FROM `items` where id_categoria=1
que me muestra: 1 cemento 1

Como hago mi consulta para que me muestre: 1 cemento construccion.
Porfavor espero q me ayuden

Última edición por gnzsoloyo; 04/05/2013 a las 16:49 Razón: Codigo de programacion no permitido en foros de BBDD.
  #2 (permalink)  
Antiguo 04/05/2013, 19:08
 
Fecha de Ingreso: septiembre-2010
Mensajes: 64
Antigüedad: 13 años, 7 meses
Puntos: 5
Respuesta: Consulta obtener el nombre segun id

Bueno ya logre resolverlo paso la consulta por si a alguien le sirve:
Código MySQL:
Ver original
  1. select id,nombre,(select nombre from categorias where id=items.id_categoria),codigo,costo,marca,imagen
  2. from items where id_categoria=1 order by id,nombre

Última edición por gnzsoloyo; 04/05/2013 a las 19:09 Razón: SQL mal etiquetado
  #3 (permalink)  
Antiguo 04/05/2013, 19:17
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta obtener el nombre segun id

Bueno, esperaba que te dieses cuenta que debías usar JOIN, pero veo que no pasó...

Si querer desmerecer tu esfuerzo, loable, el problema que te enfrentabas era de manual. La respuesta la podías encontrar en cualquier manual básico de SQL, el manual de MySQL, usando Google, e incluso en el post de documentación al inicio del foro ( Common MySQL Queries, )

En realidad la solución correcta sería:
Código MySQL:
Ver original
  1.     A.id IdArticulo,
  2.     A.nombre NombreArticulo,
  3.     C.nombre Categoria,
  4.     A.codigo,
  5.     A.costo,
  6.     A.marca,
  7.     A.imagen
  8. from items A INNER JOIN categorias C ON A.id_categoria = C.id
  9.     A.id_categoria=1
  10. order by A.id, A.nombre
Nunca es buena idea poner una subconsulta en el SELECT porque esa subconsulta se ejecutará una vez por cada registro devuelto en la consulta mayor, lo que en la mayoría de los casos generará una baja (incluso catastrófica) de performance.
Sólo se debe usar si no existe otra alternativa. Nada más.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: nombre, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:03.