2014-11-19 7 views
0

Мне нужно удалить ту же строку в таблице1 на основе значения в таблице2.Как удалить записи в одной таблице на основе значений в другой таблице

Я попытался это:

DELETE FROM project.wish_list 
    USING project.wish_list 
    INNER JOIN project.book ON project.wish_list.quantity = project.book.quantity 
    WHERE (project.wish_list.quantity = 0); 

quantity = 0 Если в таблице book, запрос должен удалить строку (с равным ISBN) в wish_list.

wish_list и book - аналогичные таблицы.

Возможно ли это?

Или ОБНОВЛЕНИЕ количества до -1 для всех isbn в wish_list, где quantity в таблице book 0?

EDIT: удаление дублируется с ISBN равным

ISBN  title 
------------------- 
123  Apples  <----- delete 
123  Apples  <----- delete 
123  Apples  <----- One only has to remain 
1234  Pineapple <----- NO DELETE 

ответ

3

Не совсем понятно, о вопросе. Похоже: удалить все wish_list записей для книг, которые имеют количество 0 в таблице book?

DELETE FROM wish_list 
    WHERE isbn IN (SELECT isbn 
        FROM book 
        WHERE quantity = 0); 

Или обновление:

UPDATE wish_list 
    SET quantity = -1 
    WHERE isbn IN (SELECT isbn 
        FROM book 
        WHERE quantity = 0); 

Обновление: Удаление дубликатов из wish_list (независимо от количества). Пожалуйста, проверьте, у меня нет:

DELETE FROM wish_list 
    WHERE ROWID NOT IN (SELECT MIN(ROWID) FROM wish_list GROUP BY isbn); 
+0

спасибо. Работа. и если я хочу обновить количество -1 в списке желаний, для каждого ISBN в таблице корзины? еще раз спасибо – neo999

+0

большое вам спасибо. последний вопрос: для удаления дубликата в таблице с ISBN равным? спасибо – neo999

+0

isbn equale, но, кроме одного, конечно. спасибо Я попробовал "УДАЛИТЬ ИЗ wish_list WHERE ISBN = ISBN"; , но удалять ВСЕ – neo999

0

Извините, я ответил не по теме.

Смежные вопросы