2016-03-23 6 views
1

У меня есть две таблицы: _adagio_items и catlg_products, где столбцы _adagio_items.ItemId и catlg_products.name должны содержать одинаковые значения.mysql отметьте уникальные записи между двумя таблицами

Я хочу найти и пометить записи в _adagio_items, которые нет в catlg_products.name.

До сих пор я был в состоянии создать SQL заявление, в котором находит такие записи:

SELECT ItemId 
FROM _adagio_items , catlg_products 
WHERE catlg_products.name <> _adagio_items.ItemId 

Теперь мне нужно помечать записи в _adagio_items, что я нашел. Так что я пытаюсь сделать это:

и получить ошибку: «Вы не можете указать целевую таблицу„_adagio_items“для обновления в ЕКОМ»

+0

также в идеале я хотел бы избежать использования инструкции «IN», поскольку у меня есть большое количество записей, и я могу съесть много вычислительной мощности. есть ли способ сделать это через JOIN? – Andrew

ответ

3

Попробуйте так:

UPDATE _adagio_items 
LEFT JOIN catlg_products ON _adagio_items.ItemId = catlg_products.name 
SET _adagio_items._new_record = 1 
WHERE catlg_products.name IS NULL 
+0

это именно то, что я искал. Спасибо тебе большое – Andrew

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