Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/05/2005, 08:56
Proteo
 
Fecha de Ingreso: mayo-2005
Mensajes: 8
Antigüedad: 19 años
Puntos: 0
MySQL SELECT de dos tablas diferentes y obtener la diferencia?

Saludos foristas!

Acudo a ustedes nuevamente con la siguiente consulta de MySQL, espero que alguien tenga un tiempito para orientarme

Tengo tres tablas, una de ellas de referencias cruzadas, y necesito seleccionar los datos en la tabla de referencias cruzadas donde NO coincidan las otras dos. Me explico mejor:

Las tablas están así:

mysql> SHOW FIELDS FROM secciones;
+------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| section_id | int(11) | | MUL | 0 | |
| nombre | varchar(100) | | MUL | 0 | |
+------------+--------------+------+-----+---------+-------+

mysql> SHOW FIELDS FROM ediciones;
+------------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------+------+-----+---------+-------+
| edition_id | int(11) | | MUL | 0 | |
| numero | int(11) | | MUL | 0 | |
+------------+---------+------+-----+---------+-------+

mysql> SHOW FIELDS FROM edicion_seccion_xref;
+------------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------+------+-----+---------+-------+
| edition_id | int(11) | | MUL | 0 | |
| section_id | int(11) | | MUL | 0 | |
+------------+---------+------+-----+---------+-------+


La tabla secciones contiene todas las secciones, y la tabla ediciones todas las ediciones. En la tabla edicion_seccion_xref almaceno que secciones corresponden a que edicion, y puede haber varias secciones repetidas para la misma sección. Para seleccionar todas las secciones que corresponden a una misma edición (sin repetirlas), hago lo siguiente:

SELECT DISTINCT edicion_seccion_xref.section_id
FROM edicion_seccion_xref LEFT JOIN secciones
ON (edicion_seccion_xref.section_id = secciones.section_id)
WHERE (1=1) AND edition_id = $edition_id


Ahora, lo que yo necesito es generar otra query para obtener cuántas y que secciones NO están en edicion_seccion_xref, es decir, no están asignadas a ninguna edición. ¿Es esto posible? si alguien sabe como hacerlo, me ayudaría muchísimo.

Gracias de antemano y saludos a todos.