x_addr_table1
Address_id,member_id,Primary,email1
7000012 56781 1 abcdef@gmail.com
7000013 56781 0 dummy@gmail.com
7000014 56781 0 abcdef@gmail.com
7000015 56782 1 mnopqr@gmail.com
7000016 56782 0 XYZXYZ@gmail.com
7000017 56782 0 mnopqr@gmail.com
Я пытался обновить электронные письма в приведенной выше таблице, где электронные письма участников отличаются от других.
Я пытаюсь достичь этого путем создания 2 временных таблиц.
x_primary_email_table2
Address_id,member_id,priemail1
7000012 56781 abcdef@gmail.com
7000015 56782 mnopqr@gmail.com
x_profilepay_email_table3
Address_id,member_id,payemail1
7000013 56781 dummy@gmail.com
7000016 56782 XYZXYZ@gmail.com
Вот мой запрос на обновление:
update x_addr_table1 x_addr
set email1=(
select T2.priemail1
from x_primary_email_table2 T2
where T2.member_id=x_addr.member_id
)
where x_addr.address_id in (
select T2.address_id from x_primary_email_table2 T2
) and x_addr.member_id in (
select T2.member_id
from x_primary_email_table2 T2, x_profilepay_email_table3 t3
where t2.member_id=t3.member_id and
upper(T2.priemail1)!=upper(T3.payemail1)
)
Я получаю ошибку здесь:
DB21034E Команда была обработана как оператор SQL, потому что она была
недопустимая команда процессора командной строки. Во время обработки SQL это
возвращено: SQL0811N Результат скалярной полной выборки, SELECT INTO
оператор или оператор VALUES INTO - это несколько строк.
SQLSTATE = 21000
Ценю помощь.