Algunas respuestas a preguntas acerca del uso de SQL

¿Qué es un Outer Join?

Un outer join consiste en la posibilidad de dejar registros sin match en una consulta, por ejemplo, cuando en una tabla hay más registros para aparear que en otra tabla con la cuál se está comparando, a continuación un ejemplo tomado del proyecto Structio en Cuenta, el sistema de manejo contable para instituciones educativas.

SELECT nombre(d.id),c.nombre AS curso ,e.login,t.nombre AS rh 
  FROM cursos c, matriculas m, estudiantes e,datospersonales d
    LEFT OUTER JOIN tipossangre t 
    ON (d.tiposangre=t.id) 
  WHERE d.id=m.estudiante AND e.id=d.id AND c.id=m.curso AND m.periodo=2007 AND c.periodo=2007 
  ORDER BY c.orden,c.nombre,d.apellido1,d.apellido2,d.nombres

En esta consulta, se está buscando los estudiantes y se está previendo que hay algunos de ellos que pueden no tener el tipo de sangre en el sistema, en la izquierda tenemos la tabla datospersonales d mientras que a la derecha tenemos la tabla tipossangre t.

Que podría mostrar algo como

 María Paula Martinez Basto           | Primero    | marmar  | O Positivo
 Emanuel Mendivelso Páez              | Primero    | emmmen  | A Positivo
 Julio Mario Ramirez Galán            | Primero    | julram  |
 Maria Fernanda  Restrepo Garcia      | Primero    | marres  |
 Diego Alejandro Sánchez Duque        | Primero    | diesan  | A Positivo
 Sergio Andrés Vivas Gómez            | Primero    | serviv  | O Positivo
 Marco Santiago Beltran  Tafur        | Segundo    | marbel3 |

AyudaUsoSql (last edited 2009-07-15 15:27:03 by localhost)