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

consultar de un catalogo

Estas en el tema de consultar de un catalogo en el foro de Mysql en Foros del Web. hola bueno de acuerdo a mis clases de base de datos pues la normalize y me quedaron estas tablas(lo simplificare) tabla_clientes nombre(valor=pepito) pais (valor del ...
  #1 (permalink)  
Antiguo 08/12/2011, 09:49
 
Fecha de Ingreso: agosto-2008
Mensajes: 272
Antigüedad: 16 años, 3 meses
Puntos: 1
consultar de un catalogo

hola bueno de acuerdo a mis clases de base de datos pues la normalize y me quedaron estas tablas(lo simplificare)

tabla_clientes
nombre(valor=pepito)
pais (valor del campo=5)

y un catalogo

tabla_paises
id_pais(5)
nombre(mexico)

entonces quiero hacer una consulta que me muestre

nombre pais
pepito mexico


muchas gracias de antemano! :D
  #2 (permalink)  
Antiguo 08/12/2011, 10:02
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 11 meses
Puntos: 447
Respuesta: consultar de un catalogo

Hola mega0079:

Esto es una consulta básica de SQL, me sorprende que tengas que recurrir a un foro a pedir ayuda...

Investiga acerca de los JOIN´s (INNER, LEFT y RIGTH)... para tu caso utilizarías un INNER JOIN. Si tienes problemas pon algo de lo que intentaste hacer, para ayudarte a afinar la consulta

Saludos
Leo
  #3 (permalink)  
Antiguo 08/12/2011, 10:10
 
Fecha de Ingreso: agosto-2008
Mensajes: 272
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: consultar de un catalogo

perdona soy medio novato haciendo las cosas bien, hago paginas en php, y para hacer esta consulta hubiera hecho minimo dos, pero quiero aprender a hacer bien las cosas, ojala me puedas ayudar lo que logre fue esto

Código PHP:
SELECT cliente.nombre paises.n_equipo
FROM cliente
INNER JOIN paises ON paises
.id_pais paises.id_pais 
  #4 (permalink)  
Antiguo 08/12/2011, 10:17
 
Fecha de Ingreso: agosto-2008
Mensajes: 272
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: consultar de un catalogo

creo que debere mejorar mi redaccion y poner datos reales el punto es este:

tengo la tabla

partidos
-local(este campo lo lleno con un numero ejemplo:5)
-visitante(este tambien se llena con un numero ejemplo:6)

entonces tengo otra tabla de equipos

equipos
-id_equipo(ejemplo:5,6)
-n_equipo(ejemplo:manchester,arsenal)

entonces quiero que aparesca

local visitante
manchester arsenal

la consulta que he intentando con el inner join es
SELECT LOCAL , visitante, equipos.n_equipo
FROM partidos
INNER JOIN equipos ON partidos.local = equipos.equipos_cd


pero temino con lo siguiente
local visitante n_equipo
5 6 manchester


ojala me puedan ayudar
  #5 (permalink)  
Antiguo 08/12/2011, 10:46
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 11 meses
Puntos: 447
Respuesta: consultar de un catalogo

Hola de nuevo mega0079:

El planteamiento que das en tu segundo post es muy diferente al del primer post, así es que vayamos por partes.

En tu modelo de BD, la tabla PARTIDOS tiene una doble referencia hacia la tabla equipos, ya que tanto el campo LOCAL como el campo VISITANTE hacen referencia hacia el mismo campo de la misma tabla, pero a registros diferentes. Lo que tienes que hacer entonces es un DOBLE INNER JOIN a tu tabla equipos utilizando un ALIAS, uniendo cada uno de los campos por separado. Checa este script:

Código MySQL:
Ver original
  1. mysql> CREATE TABLE equipos (id_equipo INT, n_equipo VARCHAR(20));
  2. Query OK, 0 rows affected (0.09 sec)
  3.  
  4. mysql> INSERT INTO equipos VALUES (5, 'manchester'), (6, 'arsenal');
  5. Query OK, 2 rows affected (0.05 sec)
  6. Records: 2  Duplicates: 0  Warnings: 0
  7.  
  8. mysql> SELECT * FROM equipos;
  9. +-----------+------------+
  10. | id_equipo | n_equipo   |
  11. +-----------+------------+
  12. |         5 | manchester |
  13. |         6 | arsenal    |
  14. +-----------+------------+
  15. 2 rows in set (0.00 sec)
  16.  
  17. mysql> CREATE TABLE partidos (local INT, visitante INT);
  18. Query OK, 0 rows affected (0.13 sec)
  19.  
  20. mysql> INSERT INTO partidos VALUES (5, 6);
  21. Query OK, 1 row affected (0.05 sec)
  22.  
  23. mysql> SELECT * FROM partidos;
  24. +-------+-----------+
  25. | local | visitante |
  26. +-------+-----------+
  27. |     5 |         6 |
  28. +-------+-----------+
  29. 1 row in set (0.00 sec)
  30.  
  31. mysql> SELECT E1.n_equipo LOCAL, E2.n_equipo VISITANTE
  32.     -> FROM partidos p
  33.     -> INNER JOIN equipos E1 ON E1.id_equipo = p.local
  34.     -> INNER JOIN equipos E2 ON E2.id_equipo = p.visitante;
  35. +------------+-----------+
  36. | LOCAL      | VISITANTE |
  37. +------------+-----------+
  38. | manchester | arsenal   |
  39. +------------+-----------+
  40. 1 row in set (0.00 sec)

Observa que la tabla EQUIPOS se define dos veces, con los alias E1 y E2. cada una de ellas se liga a uno de los campos de tu tabla PARTIDOS.

Dale un vistazo y nos comentas.
Leo.
  #6 (permalink)  
Antiguo 08/12/2011, 10:57
 
Fecha de Ingreso: agosto-2008
Mensajes: 272
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: consultar de un catalogo

excelente muchas gracias ha salido correcto, tendre que estudiarlo porque no le entiendo del todo bien, ya lo habia logrado masomenos con los alias pero no sabia hace un doble inner join, y disculpa mostrar preguntas basicas, pero ando aprendiendo y muchas gracias por tu tiempo :D

Etiquetas: catalogo, consultar, 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 10:15.