Ver Mensaje Individual
  #49 (permalink)  
Antiguo 25/06/2009, 21:54
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: como hacer este trigger????

Claro rodrigo.

En la tabla familia_x_hijos tenia la estructura id_familia e id_nino. Se podían repetir en varias ocasiones la familia, pero el niño era un registro unico.
Por esa razón, el conteo de id_familia solo contaba 1 registro asumiendo que existia un unico registro de esa familia en esta tabla.

Ahora si explicar la consulta.
Lo que está entre paréntesis se podría definir como una tabla virtual resultado de una consulta. Fijate que cuando se cierra el paréntesis, se pone un alias a la tabla llamada T1.
En pocas palabras, la consulta dentro del parentesis, se comporta como tabla y T1 es el nombre temporal que usamos para utilizar los datos que generen la consulta.
Los alias son llamados desde fuera de la consulta anteponiendo el nombre de la tabla. IF es el alias que le puse al campo (id_familia).

Igualmente, fxh se refiere al alias utilizado para referirse a la tabla familia_x_hijos(por sus iniciales) y tener un manejo mas limpio de los datos.

Es necesario hacer uso de inner join, ya que necesitamos el conteo del campo id_familia que corresponda al id_familia del niño a eliminar, es por eso que el conteo se hace sobre la tabla con la condición del id_familia y no del id_nino.

No se si te queda claro.

Un placer haberte ayudado, y como te había dicho desde un principio, todo era cuestión de eliminar en el orden correcto los datos de las diferentes tablas.

Un saludo rodrigo
__________________
Without data, You are another person with an opinion.
W. Edwads Deming