У меня есть Table
A (источник), который необходимо обновить Table
B (цель), в зависимости от нескольких правил. Между обеими таблицами есть совпадающий ключ (email
).
Когда поле check1
равно "Hello", а check2
равно "World" из Table
B, тогда я хочу обновить три поля.
Однако, если поле check1
равно "Hello" и check2
равно "Pineapple" из Table
B, тогда я хочу обновить только одно поле.
Pseudo код ниже:
SELECT Name, City, Phone
FROM A
IF B.check1="Hello" AND B.check2="World" THEN
update B.Name = A.Name,
update B.City = A.City,
update B.Phone = A.Phone
ELSE IF B.check1="Hello" AND B.check2="Pineapple" THEN
update B.Name = A.Name
ENDIF
INNER JOIN B
ON A.email = B.email
Примеры таблиц:
ТАБЛИЦА A
+-----------------------+------+------+-------------+
| Email | Name | City | Phone |
+-----------------------+------+------+-------------+
| customer1@example.com | John | NYC | 123-123-123 |
+-----------------------+------+------+-------------+
| | | | |
+-----------------------+------+------+-------------+
ТАБЛИЦА B
+-----------------------+--------+--------+------+------+-------------+
| Email | check1 | check2 | Name | City | Phone |
+-----------------------+--------+--------+------+------+-------------+
| customer1@example.com | Hello | World | | | |
+-----------------------+--------+--------+------+------+-------------+
| | | | | | |
+-----------------------+--------+--------+------+------+-------------+
RESULT (ЕСЛИ в первом случае)
+-----------------------+--------+--------+------+------+-------------+
| Email | check1 | check2 | Name | City | Phone |
+-----------------------+--------+--------+------+------+-------------+
| customer1@example.com | Hello | World | John | NYC | 123-123-123 |
+-----------------------+--------+--------+------+------+-------------+
| | | | | | |
+-----------------------+--------+--------+------+------+-------------+