Ver Mensaje Individual
  #14 (permalink)  
Antiguo 21/07/2009, 13:24
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 16 años, 1 mes
Puntos: 360
Respuesta: UPDATE con SELECT anidado

tenes razón.

Mira esto:

Código sql:
Ver original
  1. mysql> CREATE TABLE ventas(factura INTEGER PRIMARY KEY AUTO_INCREMENT,cajatotal INTEGER);
  2. Query OK, 0 ROWS affected (0.02 sec)
  3.  
  4. mysql> INSERT INTO ventas (cajatotal) VALUES(4);
  5. Query OK, 1 ROW affected (0.00 sec)
  6.  
  7. mysql> INSERT INTO ventas (cajatotal) VALUES(4);
  8. Query OK, 1 ROW affected (0.00 sec)
  9.  
  10. mysql> INSERT INTO ventas (cajatotal) VALUES(4);
  11. Query OK, 1 ROW affected (0.00 sec)
  12.  
  13. mysql> INSERT INTO ventas (cajatotal) VALUES(4);
  14. Query OK, 1 ROW affected (0.00 sec)
  15.  
  16. mysql> INSERT INTO ventas (cajatotal) VALUES(4);
  17. Query OK, 1 ROW affected (0.02 sec)
  18.  
  19. mysql> INSERT INTO ventas (cajatotal) VALUES(4);
  20. Query OK, 1 ROW affected (0.00 sec)
  21.  
  22. mysql> INSERT INTO ventas (cajatotal) VALUES(4);
  23. Query OK, 1 ROW affected (0.00 sec)
  24.  
  25. mysql> INSERT INTO ventas (cajatotal) VALUES(4);
  26. Query OK, 1 ROW affected (0.00 sec)
  27.  
  28. mysql> SELECT *FROM ventas;
  29. +---------+-----------+
  30. | factura | cajatotal |
  31. +---------+-----------+
  32. |       1 |         4 |
  33. |       2 |         4 |
  34. |       3 |         4 |
  35. |       4 |         4 |
  36. |       5 |         4 |
  37. |       6 |         4 |
  38. |       7 |         4 |
  39. |       8 |         4 |
  40. +---------+-----------+
  41. 8 ROWS IN SET (0.00 sec)
  42.  
  43. mysql> UPDATE ventas SET cajatotal=2 WHERE factura = last_insert_id();
  44. Query OK, 1 ROW affected (0.00 sec)
  45. ROWS matched: 1  Changed: 1  Warnings: 0
  46.  
  47. mysql> SELECT *FROM ventas;
  48. +---------+-----------+
  49. | factura | cajatotal |
  50. +---------+-----------+
  51. |       1 |         4 |
  52. |       2 |         4 |
  53. |       3 |         4 |
  54. |       4 |         4 |
  55. |       5 |         4 |
  56. |       6 |         4 |
  57. |       7 |         4 |
  58. |       8 |         2 |
  59. +---------+-----------+
  60. 8 ROWS IN SET (0.00 sec)
  61.  
  62. mysql>

Te sirve?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming