Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/08/2014, 11:06
Avatar de javier0730
javier0730
 
Fecha de Ingreso: enero-2010
Ubicación: Jalisco
Mensajes: 82
Antigüedad: 14 años, 4 meses
Puntos: 8
Obtener registros de una tabla siempre y cuando no exista en otra tabla

Buenas tardes.

Estoy trabajando con PHP y necesito ayuda con una consulta a la base de datos que estoy trabajando, explico de que se trata:

Tengo una base de datos en MySQL y tengo dos tablas una se llama Actividades y la otra DetalleActividad. La tabla Actividades sólo tiene calendarizado el mes en el que se llevará a cabo, la tabla DetalleActividad contiene todo los datos de lo hecho en la actividad. Ahora bien yo quiero saber que actividades se calendarizaron para Julio y que no se realizaron es decir que el registro existe en la tabla Actividad pero en la tabla DetalleActividad no existe, esos son los que quiero obtener para saber que actividades de ese mes no se realizaron.

Se que para hacer consultas que enlacen dos o mas tablas se utiliza el inner join y lo he hecho en varias ocasiones pero siempre con registros que existen en todas las tablas involucradas, pero ahora como quiero encontrar un registro que existe en una pero que no deba existir en la otra no se como hacerlo.

NOTA: en las dos tablas tengo un campo llamado ID_Actividad

Hasta el momento e intentado así:

Código PHP:
Ver original
  1. <?php
  2.         $c_act = mysql_query("SELECT * FROM Actividades inner join DetalleActividad on Actividades.id_actividad = DetalleActividad.id_actividad WHERE Actividades.id_actividad != NULL AND DetalleActividad.id_actividad = NULL ", $link);
  3.         $r_act = mysql_fetch_array($c_act);
  4.        
  5.         echo "Las actividades calendarizadas y no llevadas a cabo son las siguientes:";
  6.         do
  7.         {
  8.             echo $r_act["Actividades.id_actividad"]."<br />";
  9.         }
  10.         while ($r_act = mysql_fetch_array($c_act));
  11.         ?>


Espero su apoyo.
Gracias

Última edición por javier0730; 13/08/2014 a las 11:15