viernes, 26 de julio de 2013

MySql - INSERT de varios campos a partir de un SELECT

PREGUNTA REALIZADA EN EL FORO:
Tengo la tabla 1 y la tabla 2:

tabla1
codigo_examen---------descripcion
1--------------------------a
2--------------------------b
3--------------------------c

tabla2
Legajo_alumno-----------nombre
100------------------------Juan
101------------------------Pedro

A partir de estas 2 tablas quiero escribir una consulta que me arroje los siguientes datos en la tabla 3:

tabla3
legajo_alumno-----------nombre----------codigo_examen------descripcion
100------------------------Juan-------------1----------------------a
100------------------------Juan-------------2----------------------b
100------------------------Juan-------------3----------------------c
101------------------------Pedro------------1----------------------a
101------------------------Pedro------------2----------------------b
101------------------------Pedro------------3----------------------c


Y por ultimo necesito escribir una query que me actualice la tabla 3 en caso de que modifique algun dato de la tabla 1 o 2.




MEJOR RESPUESTA

Hola, ahi logre que se cree la tabla 3 con esta query:

"INSERT INTO tabla3 (legajo_alumno,nombre,codigo_examen_descripcion)
SELECT tabla2.legajo_alumno, tabla2.nombre, tabla1.codigo_examen, tabla1.descripcion FROM tabla1, tabla2;"

Lo que ocurre es que todo esta linkeado a una pagina PHP donde se van cargando las notas de cada alumno a la tabla 3, quedando asi:

tabla3
legajo_alumno-----------nombre----------codigo_examen------descripcion-----nota
100------------------------Juan-------------1----------------------a----------------7
100------------------------Juan-------------2----------------------b----------------6
100------------------------Juan-------------3----------------------c----------------4
101------------------------Pedro------------1----------------------a----------------8
101------------------------Pedro------------2----------------------b----------------9
101------------------------Pedro------------3----------------------c----------------5

OTRA RESPUESTA indica que lo mejor es crear una vista con la select de las dos tablas.

Fuente: http://www.forosdelweb.com/f86/mysql-realizar-update-varios-campos-partir-select-955819/

miércoles, 24 de julio de 2013

Operadores con ejemplos. MYSQL.

Operadores con ejemplos.

http://mysql.conclase.net/curso/?cap=010#

En el menu de la izqierda podemos ver de forma detallada los tipos de operadores y seleccionarlos.

Cada caso de operador tiene uno o varios ejemplos.

lunes, 22 de julio de 2013

Funciones de fecha (Date and Time Functions) En MYSQL.

Date and Time Functions


En la siguiente pagina estan las funciones de fecha y hora en una tabla todas juntas con una pequeña descripción de cada función.
VER TABLA:

domingo, 21 de julio de 2013

Funciones (en MYSQL) de GROUP BY

MYSQL: Funciones (de agregación) de GROUP BY

http://dev.mysql.com/doc/refman/5.0/es/group-by-functions.html

las principales son:

AVG([DISTINCT] expr)
 
BIT_AND(expr)
BIT_OR(expr)
BIT_XOR(expr)

COUNT(expr)
COUNT(DISTINCT expr,[expr...])

GROUP_CONCAT(expr)

miércoles, 10 de julio de 2013

Cambio del calendario Juliano al Gregoriano tratado en MySQL

MySQL usa lo que se conoce como calendario Gregoriano proleptico.

Cada país que ha cambiado del calendario Juliano al Gregoriano ha tenido que descartar al menos diez días durante el cambio. Para ver cómo funciona, vamos a mirar el mes de Octubre de 1582, cuando se hizo el primer cambio Juliano-Gregoriano:

Lunes Martes Miércoles Jueves Viernes Sábado Domingo
1 2 3 4 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

No hay fechas entre 4 y 15 de Octubre. Esta continuidad se llama el corte. Cualquier fecha antes del corte son Julianas, y cualquier fecha posterior es Gregoriana. Las fechas durante el corte no existen.

Un calendario aplicado a fechas cuando no estaban en uso se llama proleptico. Por lo tanto, si asumimos que nunca hubo un corte y las reglas Gregorianas funcionaron siempre, tenemos un calendario Gregoriano proleptico. Esto es lo que se usa en MySQL, y es requerido por el estándar SQL. Por esta razón, las fechas anteriores al corte almacenadas como valores MySQL DATE o DATETIME deben ajustarse para compensar la diferencia. Es importante tener en cuenta que el corte no ocurrió al mismo tiempo en todos los países, y que donde ocurrió más tarde se perdieron más días. Por ejemplo, en Gran Bretaña, tuvo lugar en 1752, cuando el miércoles 2 de Septiembre fue seguido por el jueves 14 de Septiembre; Rusia siguió con el calendario Juliano hasta 1918, perdiendo 13 días en el proceso, y la que se llama popularmente la "Revolución de Octubre" ocurrió en Noviembre según el calendario Gregoriano.

Fuente:http://dev.mysql.com/doc/refman/5.0/es/mysql-calendar.html