Registros duplicados en dos tablas SQL

M

Hola amigos, tengo dos tablas en una base de datos; sinonimos1 y sinonimos3; éstas poseen además el mismo campo "palabra". Me gustaría crear una consulta que me muestre los campos duplicados (que se hallan en las dos tablas) pero solo de sinonimos1.
Posteriormente quisiera crear un "delete" para borrar todos aquellos registros de sinonimos1 que se repiten en sinonimos3.

He probado con esta consulta:


select palabra from sinonimos1 inner join sinonimos3 on sinonimos1.palabra=sinonimos3.palabra


Pero no funciona, ¿podéis ayudarme? gracias

Kr4n3oK
select e.palabra from sinonimos1 e, sinonimos3 a
where e.palabra = a.palabra

Creo.
Lo he probado y funciona.

Este es el código entero

delete from sin1 where palabra in
(select e.palabra from sin1 e,sin2 a where e.palabra = a.palabra)
1 respuesta
M

La consulta funciona pero no he podido borrar los registros con el código que has puesto

1 respuesta
babri

#3

delete from sinonimos1 where palabra in

(select e.palabra from sinonimos1 e, sinonimos2 a where e.palabra = a.palabra)

Es lo mismo que #2 pero con tu sintaxis...xDD Por si no lo habias cambiado que imagino que si pero yo lo digo por si acaso...xD

M

Que va! si no funciona igual, no sé si es porque cada registro tiene dos campos 'palabra' y 'sinonimos'. Yo lo que quiero es borrar los dos campos. Pero me da el siguiente error:

consulta SQL: Documentación


DELETE FROM sinonimos1 WHERE palabra IN (
SELECT e.palabra
FROM sinonimos1 e, sinonimos2 a
WHERE e.palabra = a.palabra
)

MySQL ha dicho: Documentación
#1093 - You can't specify target table 'sinonimos1' for update in FROM clause

 
M

RESPUESTA DEFINITIVA

DELETE FROM sinonimos1 WHERE palabra in (SELECT palabra FROM sinonimos3);

Muchas gracias por la ayuda! ;)

Usuarios habituales