Обновление выбранных значений столбцов одной таблицы с другой таблицей - PullRequest
0 голосов
/ 20 марта 2019

У меня есть сценарий, в котором мне нужно скопировать некоторые конкретные значения столбца из master_table в тот же столбец slave_table.Обратите внимание, что slave_table уже содержит данные, мне нужно обновлять определенные поля только на основе условий, которые я определяю, используя условие where.

Ниже приведены структуры таблиц.

Master_table

id  zzco1   zzco2   zzco3   zzco4   zzco5   quote_id        quote_option_id
-----------------------------------------------------------------------------
1   ded     34      6.90     90     sad     10000123        2009090
2   rfg     45      7.90     30     sd      10000256        2008020
3   hji     62      80.90    70     pt      10000963        2009603
4   opp     30      61.90    20     rts     10000785        2007562

Slave_table

id  zzco1   zzco2   zzco3   zzco4   zzco5   quote_id        quote_option_id     zzco7   zzco8 zzco9
-----------------------------------------------------------------------------------------------------
1    null   null    null    null    null    10000123        2009090             cbz     xcc
2    null   null    null    null    null    10000123        2009090             cbz     xcc
3    null   null    null    null    null    10000123        2009090             cbz     xcc
4    null   null    null    null    null    10000256        2008020             szc     zxc
5    null   null    null    null    null    10000256        2008020             szc     zxc
6    null   null    null    null    null    10000256        2008020             szc     zxc

ожидаемый_ выход ниже

Slave_table

id  zzco1   zzco2   zzco3   zzco4   zzco5   quote_id        quote_option_id     zzco7   zzco8 zzco9
-----------------------------------------------------------------------------------------------------
1   ded     34      6.90     90     sad     10000123        2009090             cbz     xcc
2   ded     34      6.90     90     sad     10000123        2009090             cbz     xcc
3   ded     34      6.90     90     sad     10000123        2009090             cbz     xcc
4   rfg     45      7.90     30     sd      10000256        2008020             szc     zxc
5   rfg     45      7.90     30     sd      10000256        2008020             szc     zxc
6   rfg     45      7.90     30     sd      10000256        2008020             szc     zxc

на основе quote_id и quote_option_id, необходимо скопировать данные из master_table до slave_table

Я попробовал приведенный ниже запрос, но он не работает должным образом.он хранит только нулевые значения.

UPDATE slav
  SET   slav.zzco1 = mast.zzco1,
slav.zzco2 = mast.zzco2,
slav.zzco3 = mast.zzco3,
slav.zzco4 = mast.zzco4,
slav.zzco5 = mast.zzco5,
FROM slave_table AS slav
  left JOIN master_table AS mast
ON mast.quote_id = slav.quote_id and mast.quote_option_id = slav.quote_option_id
WHERE slav.quote_id = 'quote_id'
  AND slav.quote_option_id= 'quote_option_id';

пожалуйста, исправьте меня, если я ошибаюсь в запросе.Любые предложения и предложения приветствуются.

1 Ответ

0 голосов
/ 20 марта 2019

Используйте INNER JOIN, если вы хотите обновить строки с одинаковыми quote_id и quote_option_id в ведомых таблицах.

...