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.

Preguntas similare

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")
Respuesta Responder a este mensaje
#2 akiragrejander
10/02/2005 - 23:36 | Informe spam
Gracias eso ya lo tengo, lo que necesito ess que la pagina indique mediante una
imagen que añada cual de las facturas del cliente representada tiene un
comentario.
Saludos

Benjamin Porter escribió:

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")
Respuesta Responder a este mensaje
#3 Benjamin Porter
11/02/2005 - 01:26 | Informe spam
escribió en el mensaje
news:
Gracias eso ya lo tengo, lo que necesito ess que la pagina indique


mediante una
imagen que añada cual de las facturas del cliente representada tiene un
comentario.




Dentro del loop que recorre cada uno de los registros obtenidos segun las
sentencias SQL anteriores, a cada registro, en el lugar de la imagen, le
pones este codigo:

<%if len(rs("id_comentario"))>0 then response.write("<img
src=imagen.gif">)%>&nbsp;

Saludos
Benjamin.-





Saludos

Benjamin Porter escribió:

> 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")

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida