es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo eliminar filas de otra tabla en SQLITE?

Tengo estas tablas

ATWAR Clave primaria ShipName y War_ID

ShipName WarID
First 1
Second 2
Third 3

SHIP Clave primaria Ship_Name

ShipName ShipType_ID
First S.1
Second S.2
Third S.3
FOURTH S.4

Deseo eliminar de la tabla SHIP los barcos que no participaron en una guerra.
Si quiero mostrar los barcos que participan en una guerra, puedo usar este comando:

SELECT DISTINCT SHIP.Ship_Name FROM SHIP
INNER JOIN AT_WAR ON SHIP.Ship_Name = AT_WAR.Ship_Name

Estoy usando este comando pero no funciona:

DELETE FROM SHIP 
INNER JOIN AT_WAR ON SHIP.Ship_Name = AT_WAR.Ship_Name
WHERE AT_WAR.Ship_Name IS NULL;

¡Gracias de antemano!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para eliminar los barcos que no participaron en una guerra de la tabla SHIP, puedes usar el siguiente comando:

    DELETE FROM SHIP
    WHERE Ship_Name NOT IN (SELECT Ship_Name FROM AT_WAR);
    

    Esto eliminará todas las filas de la tabla SHIP donde el Ship_Name no esté presente en la columna Ship_Name de la tabla AT_WAR. La subconsulta (SELECT Ship_Name FROM AT_WAR) devuelve todos los Ship_Names que aparecen en la tabla AT_WAR, y el operador NOT IN filtra cualquier Ship_Name que no esté en esa lista.

Comments are closed.