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

Dudas en procedimiento almacenado

Estas en el tema de Dudas en procedimiento almacenado en el foro de Mysql en Foros del Web. Tengo una duda, en un Sp se puede hacer una consulta a una tabla y de acuerdo a ese resultado buscar el registro en dos ...
  #1 (permalink)  
Antiguo 09/01/2013, 16:40
Avatar de RastaMart  
Fecha de Ingreso: noviembre-2006
Mensajes: 91
Antigüedad: 17 años, 5 meses
Puntos: 3
Dudas en procedimiento almacenado

Tengo una duda, en un Sp se puede hacer una consulta a una tabla y de acuerdo a ese resultado buscar el registro en dos tablas mas y arrojar un valor si lo encontro en cualquiera de las dos tablas....

tbltodos
cliente nombre
001 Martin
002 Marcos
003 Mario

tblregistro1
cliente otros_datos..
001 .....

tblregistro2
cliente otros_datos..
002 .....


al llamar el procedimiento almacenado regresar el siguiente dato...
cliente nombre Esta_en
001 Martin tblregistro1
002 Marcos tblregistro2
003 Mario null

Alguien me podria ayudar. Gracias.
  #2 (permalink)  
Antiguo 12/04/2013, 08:33
 
Fecha de Ingreso: marzo-2013
Mensajes: 21
Antigüedad: 11 años, 1 mes
Puntos: 0
Mensaje Respuesta: Dudas en procedimiento almacenado

Uhmmm... hasta donde se puede arrojarte si lo encuentra o no el registro pero... que te diga de que tabla lo sacó eso si no se si sea posible.

Por otro lado porque tienes 2 tablas con lo mismos campos?
  #3 (permalink)  
Antiguo 12/04/2013, 13:34
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Dudas en procedimiento almacenado

Hola RastaMart:

Lo puedes hacer así:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tbltodos;
  2. +---------+--------+
  3. | cliente | nombre |
  4. +---------+--------+
  5. | 001     | Martin |
  6. | 002     | Marcos |
  7. | 003     | Mario  |
  8. | 004     | Leo    |
  9. +---------+--------+
  10. 4 rows in set (0.00 sec)
  11.  
  12. mysql> SELECT * FROM tblregistro1;
  13. +---------+-------------+
  14. | cliente | otros_datos |
  15. +---------+-------------+
  16. | 001     | otro Martin |
  17. | 004     | otro Leo    |
  18. +---------+-------------+
  19. 2 rows in set (0.00 sec)
  20.  
  21. mysql> SELECT * FROM tblregistro2;
  22. +---------+-------------+
  23. | cliente | otros_datos |
  24. +---------+-------------+
  25. | 002     | otro Marcos |
  26. | 004     | otro Leo    |
  27. +---------+-------------+
  28. 2 rows in set (0.00 sec)
  29.  
  30. mysql> SELECT
  31.     ->   TT.*,
  32.     ->   CASE WHEN (T1.cliente IS NOT NULL AND
  33.     ->              T2.cliente IS NOT NULL) THEN 'ambas'
  34.     ->        WHEN (T1.cliente IS NOT NULL AND
  35.     ->              T2.cliente IS NULL) THEN 'tblregistro1'
  36.     ->        WHEN (T1.cliente IS NULL AND
  37.     ->              T2.cliente IS NOT NULL) THEN 'tblregistro2'
  38.     ->   END esta_en
  39.     -> FROM tbltodos TT
  40.     -> LEFT JOIN tblregistro1 T1 ON T1.cliente = TT.cliente
  41.     -> LEFT JOIN tblregistro2 T2 ON T2.cliente = TT.cliente;
  42. +---------+--------+--------------+
  43. | cliente | nombre | esta_en      |
  44. +---------+--------+--------------+
  45. | 001     | Martin | tblregistro1 |
  46. | 002     | Marcos | tblregistro2 |
  47. | 003     | Mario  | NULL         |
  48. | 004     | Leo    | ambas        |
  49. +---------+--------+--------------+
  50. 4 rows in set (0.00 sec)

Saludos
Leo.

Etiquetas: sql
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 18:54.