Consultar dos tablas a la vez.

10/02/2005 - 20:47 por akiragrejander | Informe spam
Hola a todos.

Tengo un problema con tres tablas. Me explico.
Una de ellas tengo los datos de los clientes y en otra de las facturas y
la tercera los comentarios de las facturas.
Quiero que la consulta me indique que factura tiene comentarios y hacer
que aparezca una imagen al lado
de lafactura en cuestión. Por ejemplo puede haber un cliente que tenga
tres facturas pero solo una de ellas tiene adjunto un comentario.

No se si me explico.
SAludos.
 

Leer las respuestas

#1 Benjamin Porter
10/02/2005 - 21:29 | Informe spam
escribió en el mensaje
news:
Hola a todos.

Tengo un problema con tres tablas. Me explico.
Una de ellas tengo los datos de los clientes y en otra de las facturas y
la tercera los comentarios de las facturas.
Quiero que la consulta me indique que factura tiene comentarios y hacer
que aparezca una imagen al lado
de lafactura en cuestión. Por ejemplo puede haber un cliente que tenga
tres facturas pero solo una de ellas tiene adjunto un comentario.

No se si me explico.




Mas o menos, veamos si te entiendo:

- Sean clientes, facturas y comentarios las respectivas tablas;
- Sean los campos claves:
CLIENTES: id_cliente
FACTURAS: id_factura
id_cliente (relaciona factura con cliente)
COMENTARIOS: id_comentario
id_factura (relaciona comentarios con
facturas)

Entonces:

- La siguiente sentencia te devolverá los registros correlacionados de las 3
tablas en que NO existan comentarios:

SELECT clientes.*, facturas.*, comentarios.* FROM ((clientes LEFT JOIN
facturas ON clientes.id_cliente = facturas.id_factura) LEFT JOIN comentarios
ON facturas.id_factura=comentarios.id_factura) WHERE comentarios.id_factura
not null

- La siguiente sentencia te devolverá los registros corrrelacionados de las
3 tablas en que SI existan comentarios:

SELECT clientes.*, facturas.*, comentarios.* FROM ((clientes LEFT JOIN
facturas ON clientes.id_cliente = facturas.id_factura) LEFT JOIN comentarios
ON facturas.id_factura=comentarios.id_factura) WHERE comentarios.id_factura
is null

- La siguiente sentencia te devolverá todos los registros correlacionados.
En este caso muestras la imagen que quieres dependiendo de si
comentarios.id_factura es nulo o no

SELECT clientes.*, facturas.*, comentarios.* FROM ((clientes LEFT JOIN
facturas ON clientes.id_cliente = facturas.id_factura) LEFT JOIN comentarios
ON facturas.id_factura=comentarios.id_factura)


Espero haberte sido de ayuda.



Atentamente
_____________________
Benjamin Porter

(Evidentemente sin el ".punto")

Preguntas similares