после некоторой борьбы. У меня наконец есть рабочий код для запроса базы данных и получения результатов, которые я хочу.Обновление Mysql в сочетании с внутренним соединением и не excist
SELECT *
FROM email_list_subscriber_events AS t1 INNER JOIN email_list_subscribers ON email_list_subscribers.subscriberid=t1.subscriberid
WHERE lastupdate BETWEEN 0 AND 9999999999
AND t1.listid = 206
AND eventtype = 'Sent an Email Campaign'
AND NOT EXISTS (SELECT 1
FROM email_list_subscriber_events AS t2
WHERE t1.subscriberid = t2.subscriberid
AND t2.lastupdate BETWEEN 0 AND 9999999999
AND t2.eventtype IN ('Opened an Email Campaign', 'Clicked on a link'))
GROUP BY `email_list_subscribers`.`subscriberid`
Сейчас я нахожусь в новой борьбе, чтобы обновить email_list_subscribers.confirmed от 0 до 1 или от 1 до 0.
Я попробовал несколько UPDATE структур, но ни один из них не будет разбирать.
Спасибо за ваше время и внимание.
Обновление:
Мои безжалостно неудачные попытки
UPDATE epaper_list_subscribers
SET confirmed = 1
FROM email_list_subscriber_events AS t1 INNER JOIN email_list_subscribers ON email_list_subscribers.subscriberid=t1.subscriberid
WHERE lastupdate BETWEEN 0 AND 9999999999
AND t1.listid = 206
AND eventtype = 'Sent an Email Campaign'
AND NOT EXISTS (SELECT 1
FROM email_list_subscriber_events AS t2
WHERE t1.subscriberid = t2.subscriberid
AND t2.lastupdate BETWEEN 0 AND 9999999999
AND t2.eventtype IN ('Opened an Email Campaign', 'Clicked on a link'))
И
SELECT *
FROM email_list_subscriber_events AS t1 INNER JOIN email_list_subscribers ON email_list_subscribers.subscriberid=t1.subscriberid
WHERE lastupdate BETWEEN 0 AND 9999999999
AND t1.listid = 206
AND eventtype = 'Sent an Email Campaign'
AND NOT EXISTS (UPDATE email_list_subscribers
SET email_list_subscribers.confirmed = 1
FROM email_list_subscriber_events AS t2
WHERE t1.subscriberid = t2.subscriberid
AND t2.lastupdate BETWEEN 0 AND 9999999999
AND t2.eventtype IN ('Opened an Email Campaign', 'Clicked on a link'))
Поскольку FROM не представляется возможным в UPDATE, является то, может быть, можно вывести результаты запроса на выборку в TEMP TABLE и сделать обновление?
SQLFIDDLE: http://sqlfiddle.com/#!9/0ee99
Где ваше заявление об обновлении? Мы не можем исправить то, что мы не можем видеть. –
Извините, это пятница ... – Naithan
В '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '. –