sqlite изменить ВЫБРАТЬ на УДАЛИТЬ - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть этот запрос SELECT, который возвращает две строки. Как удалить эти строки из таблицы?

%%sql
WITH temp(A, B) as (
    SELECT e0.A, e0.B
    FROM edges e0, edges e1, edges e2
    WHERE e0.B = e1.A
    AND e1.B = e2.A
    AND e2.B= e0.A
    LIMIT 1
)
SELECT s1.*
FROM edges s1
JOIN temp ON
(s1.A = temp.A AND s1.B = temp.B)
OR (s1.A = temp.B AND s1.B = temp.A);

SELECT возвращает нужные строки для удаления. Я думал, что способ сделать это состоит в том, чтобы изменить SELECT s1.* на DELETE s1, но это не сработало

1 Ответ

0 голосов
/ 10 февраля 2020

Просто сделайте Удалить из ребер S1

WITH temp(A, B) as (
    SELECT e0.A, e0.B
    FROM edges e0, edges e1, edges e2
    WHERE e0.B = e1.A
    AND e1.B = e2.A
    AND e2.B= e0.A
    LIMIT 1
)
Delete
FROM edges 
where exists
(select 1 from temp where
(edges.A = temp.A AND edges.B = temp.B)
OR (edges.A = temp.B AND edges.B = temp.A));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...