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

Consulta de MySQL

Estas en el tema de Consulta de MySQL en el foro de Bases de Datos General en Foros del Web. Hola, me presento: Soy Alex. Tengo esta tabla con los siguientes valores: <cotiz> +---+-----+-------+-------+ |ID |Desc |ID_Cust|ID_Cont| +---+-----+-------+-------+ | 1 | ab | 1 | ...
  #1 (permalink)  
Antiguo 21/01/2004, 17:57
 
Fecha de Ingreso: enero-2004
Ubicación: Durango
Mensajes: 3
Antigüedad: 20 años, 3 meses
Puntos: 0
Pregunta Consulta de MySQL

Hola, me presento: Soy Alex.

Tengo esta tabla con los siguientes valores:
<cotiz>
+---+-----+-------+-------+
|ID |Desc |ID_Cust|ID_Cont|
+---+-----+-------+-------+
| 1 | ab | 1 | 1 |
| 2 | cd | 6 | 3 |
| 3 | ef | 3 | 2 |
| 4 | gh | 7 | 1 |
| 5 | ij | 5 | 2 |
| 6 | kl | 9 | 2 |
| 7 | mn | 7 | |
| 8 | no | 2 | 2 |
| 9 | pq | 2 | |
|10 | rs | 2 | 1 |
+---+-----+-------+-------+


Y dos sub tablas, con una relacion maestro-detalle
<customers> (Master Table)
+-------+--------+
|ID_Cust|Name |
+-------+--------+
| 1 | Gor |
| 2 | Phil |
| 3 | Ed |
| 4 | Mike |
| 5 | Sal |
| 6 | Tony |
| 7 | Mo |
| 8 | Con |
| 9 | Dan |
| 10 | Pag |
+-------+--------+


<contacts> (Detail Table)
+-------+--------+-------+
|ID_Cont| Name |ID_Cust|
+-------+--------+-------+
| 1 | Alex | 1 |
| 2 | Hex | 1 |
| 1 | Neil | 2 |
| 2 | Bo | 2 |
| 1 | Bob | 3 |
| 2 | Jean | 3 |
| 1 | Zar | 4 |
| 2 | Dot | 4 |
| 1 | Meg | 5 |
| 2 | Eli | 5 |
| 1 | Don | 6 |
| 2 | Zack | 6 |
| 3 | Lou | 6 |
| 1 | Kin | 7 |
| 2 | Tre | 7 |
| 1 | Leo | 8 |
| 2 | Thu | 8 |
| 1 | Jan | 9 |
| 2 | Gil | 9 |
+-------+--------+-------+


La consulta que quiero hacer con la tabla <cotiz>, de acuerdo a los ID's de las otras tablas es la siguiente:

query_cotiz
+---+-----+--------+-------+
|ID |Desc |customer|contact|
| | |name |name |
+---+-----+--------+-------+
| 1 | ab | Gor | Alex |
| 2 | cd | Tony | Lou |
| 3 | ef | Ed | Jean |
| 4 | gh | Mo | Kin |
| 5 | ij | Sal | Eli |
| 6 | kl | Dan | Gil |
| 7 | mn | Mo | |
| 8 | no | Phil | Bo |
| 9 | pq | Phil | |
|10 | rs | Phil | Hex |
+---+-----+--------+-------+


Lo he intentado con esta sintaxis de MySQL:

SELECT cotiz.ID, cotiz.Desc, customers.name, contacts.name FROM cotiz INNER JOIN (customers INNER JOIN contacts ON contacts.ID_Cust = customers.ID_Cust) ON (cotiz.ID_Cont = contacts.ID_Cont) AND (cotiz.ID_Cust = customers.ID_Cust)


Pero el resultado que me dió fue este:

+---+-----+--------+-------+
|ID |Desc |customer|contact|
| | |name |name |
+---+-----+--------+-------+
| 1 | ab | Gor | Alex |
| 2 | cd | Tony | Lou |
| 3 | ef | Ed | Jean |
| 4 | gh | Mo | Kin |
| 5 | ij | Sal | Eli |
| 6 | kl | Dan | Gil |
| 8 | no | Phil | Bo |
|10 | rs | Phil | Hex |
+---+-----+--------+-------+


Como pueden ver, no hay registro con el ID=7 y el 9, eso es porque en la tabla <cotiz> no hay una referencia en el campo ID_Cont.

Existe alguna forma de incluir todos los registros cuando no hay datos en un campo? (valor Null o Nulo)

Gracias de antemano!!!

P.D. Disculpen mi post tan largo, pero queria ser lo mas explicito posible con las tablas.
  #2 (permalink)  
Antiguo 22/01/2004, 06:24
Avatar de puchitol  
Fecha de Ingreso: diciembre-2003
Ubicación: ELCHE
Mensajes: 322
Antigüedad: 20 años, 4 meses
Puntos: 0
Hola,
prueba con esta sentencia:

select cotiz.id, cotiz.desc, customers.name, contacts.name
from cotiz, customers, contacts
where cotiz.id_cust = customers.id and cotiz.id_cont = contacts.id

pruebalo y me cuentas,ok?

un saludo.
__________________
If you think fuck is funny, fuck yourself and save your money,
espero que entendais la moraleja... je, je, je
  #3 (permalink)  
Antiguo 22/01/2004, 10:50
 
Fecha de Ingreso: enero-2004
Ubicación: Durango
Mensajes: 3
Antigüedad: 20 años, 3 meses
Puntos: 0
Hmmm... no resulto..

LO que hace tu consulta es que me muestra todas las posibles combinaciones entre los registros.
Yo lo que quiero hacer es uniones (JOINTS) entre tablas para lograr una consulta lo mas informativa posible y que sustituya los ID's por las descripciones o nombres.

Gracias de cualquier forma.

Saludos.
  #4 (permalink)  
Antiguo 23/01/2004, 03:11
Avatar de puchitol  
Fecha de Ingreso: diciembre-2003
Ubicación: ELCHE
Mensajes: 322
Antigüedad: 20 años, 4 meses
Puntos: 0
hola otra vez,

prueba esto: la misma select pero añadiendo distinct:

select distinct cotiz.id . . .

a ver si asi va bien.

un saludo.
__________________
If you think fuck is funny, fuck yourself and save your money,
espero que entendais la moraleja... je, je, je
  #5 (permalink)  
Antiguo 23/01/2004, 12:31
 
Fecha de Ingreso: enero-2004
Ubicación: Durango
Mensajes: 3
Antigüedad: 20 años, 3 meses
Puntos: 0
Hola puchito!

Gracias nuevamente por tu respuesta, igual no resulto.
Sin embargo, ya solucione mi inquietud y fue a traves de la union de consultas (UNION SELECT...).

Muchisimas gracias de todas formas.

Saludos!
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 05:09.