Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

MySQL SELECT de dos tablas diferentes y obtener la diferencia?

Estas en el tema de MySQL SELECT de dos tablas diferentes y obtener la diferencia? en el foro de Bases de Datos General en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 25/05/2005, 08:56
 
Fecha de Ingreso: mayo-2005
Mensajes: 8
Antigüedad: 19 años, 6 meses
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.
  #2 (permalink)  
Antiguo 26/05/2005, 03:06
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 21 años, 3 meses
Puntos: 2
Puedes probar con esta sentencia:
Código:
select a.section_id , count(b.edition_id)
from secciones a left join edicion_seccion_xref b on a.section_id=b.section_id
group by 1
having count(b.edition_id) = 0
Un saludo.
__________________
Estoy contagiado de Generación-I
  #3 (permalink)  
Antiguo 25/03/2010, 12:30
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 9 meses
Puntos: 22
Respuesta: MySQL SELECT de dos tablas diferentes y obtener la diferencia?

Hola,

y es posible hacer un SELECT *


???

Si quiero seleccionar TODOS LOS CAMPOS de una de las tablas, y solo UNO o DOS de la otra, que debo hacer ?
  #4 (permalink)  
Antiguo 25/03/2010, 12:45
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: MySQL SELECT de dos tablas diferentes y obtener la diferencia?

Anarko... puedes hacerlo así

Código SQL:
Ver original
  1. SELECT tabla1.*,tabla2.campo1,tabla2.campo2 FROM .....

Para una proxima ocasión, no revivas temas viejos. Si tienes una duda, posteala en un nuevo tema

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 14:18.