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

consulta varias tablas

Estas en el tema de consulta varias tablas en el foro de Mysql en Foros del Web. Hola a todos, A ver si me podeis echar una mano en una consulta a mysql que logro realizar. Os explico: Tengo una tabla llamada ...
  #1 (permalink)  
Antiguo 03/07/2007, 04:43
Avatar de ibme74  
Fecha de Ingreso: marzo-2004
Mensajes: 81
Antigüedad: 20 años, 8 meses
Puntos: 0
consulta varias tablas

Hola a todos,

A ver si me podeis echar una mano en una consulta a mysql que logro
realizar. Os explico: Tengo una tabla llamada agenda aqui tengo estos campos
  • fecha
  • vendedor
  • cliente
  • propietario
  • telefono
  • email
  • y varios campo más

en los campos vendedor, cliente y propietario guardo los codigos del vendedor, propietario o cliente de sus respectivas tablas.

quiero sacar el resultado de una consulta por fecha de la agenda y los nombres de el vendedor, el cliente o el propietario, que se guardan en sus respectivas tablas. Se supone que si agenda.cliente tiene un codigo agenda.propietario esta vacio y viceversa.

Hago esto pero me devuelve varios resultados cuando sólo debería devolverme uno:

Código PHP:
SELECT agenda. * , vendedores.nombre AS v_nombrepropietarios.nombre AS p_nombreclientes.nombre AS c_nombre
FROM agenda
vendedorespropietariosclientes
WHERE agenda
.fecha '2007-07-03'
AND agenda.vendedor vendedores.codigo
AND (
(
agenda.propietario propietarios.codigo
AND agenda.cliente ''
)
OR (
agenda.cliente clientes.codigo
AND agenda.propietario ''
)

Gracias y saludos.
  #2 (permalink)  
Antiguo 03/07/2007, 09:28
Avatar de ibme74  
Fecha de Ingreso: marzo-2004
Mensajes: 81
Antigüedad: 20 años, 8 meses
Puntos: 0
Re: consulta varias tablas

Creo que es así:

Código PHP:
SELECT agenda. * , 
CASE 
WHEN agenda.vendedor ''
THEN ''
ELSE vendedores.nombre
END 
AS v_nombre
CASE 
WHEN agenda.cliente ''
THEN ''
ELSE clientes.nombre
END 
AS c_nombre
CASE 
WHEN agenda.propietario ''
THEN ''
ELSE propietarios.nombre
END 
AS p_nombre
FROM agenda
vendedorespropietariosclientes
WHERE agenda
.fecha '2007-07-03'
AND agenda.vendedor vendedores.codigo
GROUP BY idreg 
Si estoy equivocado por favor haganlo saber.

Gracias.
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 13:58.