Зачем использовать подзапрос, чтобы получить исходную таблицу?

0

Мне попался вопрос от Leetcode.

https://leetcode.com/problems/delete-duplicate-emails/

Один подход ниже:

DELETE FROM Person WHERE Id NOT IN (SELECT MIN(p.Id) FROM (SELECT * FROM Person) p Group by p.Email);

Интересно, почему ему нужен подзапрос для самой таблицы (SELECT MIN(p.Id) FROM (SELECT * FROM Person) вместо просто (SELECT MIN(p.Id) FROM Person p)

Теги:
subquery

1 ответ

0

Это взлом в MySQL. MySQL не позволяет DELETE или UPDATE напрямую ссылаться на изменяемую таблицу. Дополнительный подзапрос материализует таблицу и позволяет коду работать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню