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

consulta en 2 tablas al tiempo

Estas en el tema de consulta en 2 tablas al tiempo en el foro de Mysql en Foros del Web. Hola tengo dos tablas en una base de datos una llamada recibos_caja y otra llamada recibos_caja_usuarios mi idea es hacer una consulta sql que me ...
  #1 (permalink)  
Antiguo 03/06/2009, 07:26
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
De acuerdo consulta en 2 tablas al tiempo

Hola

tengo dos tablas en una base de datos
una llamada recibos_caja y otra llamada recibos_caja_usuarios

mi idea es hacer una consulta sql que me muestre los recibos de caja asociados a un usuario en la tabla recibos_caja

pero si ese recibo de caja se encuentra en la tabla de recibos_caja_usuarios no me lo muestre

es decir
yo tengo dos consultas pero kiero ke sea solo una.

SELECT * FROM recibos_caja WHERE id_usuario = 1


si el usuario 1 tiene 50 recibos de caja asociados a el y 10 de esos recibos (id_recibo) se encuentran en la tabla de recibos_caja_usuarios entonces no deberia mostrarmelos..

alguien sabe como hacer esta consulta?
mi base de datos es mysql.

gracias.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #2 (permalink)  
Antiguo 03/06/2009, 07:35
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: consulta en 2 tablas al tiempo

Lexus..

que campos tiene la tabla recibos_caja y recibos_caja_usuarios?

Asumiendo que tienen un id_recibo en común esto puede servir.

Código mysql:
Ver original
  1. SELECT * FROM recibos_caja
  2.  WHERE id_usuario = 1 and
  3. id_recibo not in
  4. (select id_recibo from recibos_caja_usuarios where id_usuario=1);

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 03/06/2009, 08:02
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: consulta en 2 tablas al tiempo

hola
gracias por tu respuesta

si depronto plantee mal mi duda

necesito algo asi


"SELECT * FROM recibos_caja WHERE id_usuario= 1 AND id NOT IN(SELECT id_recibo FROM recibos_caja_rc WHERE id_recibo = recibos_caja.id )"


tengo en recibos_caja los campos id_usuario, y id
y en recibos_caja_rc tengo el id_recibo donde relaciono esa tabla con la de recibos_caja..

tonecs lo qeu necesito es qeu me muestre

todos los recibos de caja qeu no esten en la otra tabla..
aunke no se como ahcerlo realmente.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #4 (permalink)  
Antiguo 03/06/2009, 08:21
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: consulta en 2 tablas al tiempo

Cita:
tonecs lo qeu necesito es qeu me muestre

todos los recibos de caja qeu no esten en la otra tabla..
aunke no se como ahcerlo realmente.
Lexus... sigo sin entender. Para mi, tu consulta funciona muy bien según tus palabras.

Código mysql:
Ver original
  1. mysql> create table recibos_caja(id integer primary key,id_usuario integer);
  2. Query OK, 0 rows affected (0.20 sec)
  3.  
  4. mysql> insert into recibos_caja values(1,1);
  5. Query OK, 1 row affected (0.00 sec)
  6.  
  7. mysql> insert into recibos_caja values(2,1);
  8. Query OK, 1 row affected (0.00 sec)
  9.  
  10. mysql> insert into recibos_caja values(3,1);
  11. Query OK, 1 row affected (0.00 sec)
  12.  
  13. mysql> insert into recibos_caja values(4,1);
  14. Query OK, 1 row affected (0.02 sec)
  15.  
  16. mysql> insert into recibos_caja values(5,2);
  17. Query OK, 1 row affected (0.00 sec)
  18.  
  19. mysql> create table recibos_caja_rc(id_recibo integer, foreign key (id_recibo) references recibos_caja(id));
  20. Query OK, 0 rows affected (0.00 sec)
  21.  
  22. mysql> insert into recibos_caja_rc values(1);
  23. Query OK, 1 row affected (0.00 sec)
  24.  
  25. mysql> insert into recibos_caja_rc values(2);
  26. Query OK, 1 row affected (0.00 sec)
  27.  
  28. mysql> SELECT * FROM recibos_caja WHERE id_usuario= 1 AND id NOT IN(SELECT id_recibo FROM recibos_caja_rc WHERE id_recibo = recibos_caja.id);
  29. +----+------------+
  30. | id | id_usuario |
  31. +----+------------+
  32. |  3 |          1 |
  33. |  4 |          1 |
  34. +----+------------+
  35. 2 rows in set (0.03 sec)

El 3 y 4 son aquellos recibos que no estan en la otra tabla.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 03/06/2009, 08:27
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: consulta en 2 tablas al tiempo

gracias ke pena es que habia escrito mal el nombre de la tabla y no me queria funcionar..
al parecer ya esta bien.. en mi maquina a funciona voy aprobarlo en el servidor de mi cliente y cualquier cosa te comento..
muchas gracias...
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
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 23:16.