2013-03-20 2 views
0

У меня есть запрос на выборку, как это:Удаление выбранных записей по запросу выберите

SELECT ji . * , a.acc_name 
FROM zp_journal_info ji 
INNER JOIN zp_account a ON a.id = ji.account_id 
WHERE ji.date_time LIKE '2013-03-19%' 
ORDER BY ji.id ASC 

Я ничего об остальной части базы данных не знаю, так как я не развивать его, но мне просто нужно удалить строки, которые генерируются вышеуказанным запросом. Будет ли запрос ниже делать это правильно?

DELETE 
FROM zp_journal_info ji 
INNER JOIN zp_account a ON a.id = ji.account_id 
WHERE ji.date_time LIKE '2013-03-19%' 
ORDER BY ji.id ASC 

ответ

1

Вам просто нужно добавить имя таблицы, где происходит удаление записи.

DELETE ji 
FROM zp_journal_info ji 
     INNER JOIN zp_account a ON a.id = ji.account_id 
WHERE ji.date_time LIKE '2013-03-19%' 

вы также можете использовать DATE

DELETE ji 
FROM zp_journal_info ji 
     INNER JOIN zp_account a ON a.id = ji.account_id 
WHERE DATE(ji.date_time) = '2013-03-19' 
+0

но что, если мне нужно, чтобы удалить * весь * записи, которые выходят из запроса на выборку, т.е. через обе таблицы? – user961627

+0

try, 'DELETE ji, a FROM ....' mysql поддерживает это –