Left Join MYSQL Вставить на трех условиях - PullRequest
0 голосов
/ 21 апреля 2020

Привет! Я пытаюсь создать запрос INSERT, в результате чего записи в таблице holding вставляются в таблицу price, где встречаются следующие сценарии ios

  prod_name   prod_id   price       Outcome                          Reason                          
 ----------- --------- -------- --------- ------------------------------------------------------- 
  Prod B         2000   £10.00   Insert    New product exists                                     
  Prod A         1000   £8.00    Skip      Price for Prod A has not changed since last update  
  Prod A         1000   £7.00    Insert    Prod A has a new price                                 
  Prod A         1000   £10.00   Insert    Prod A has a new price and price previously existed 

На основе holding таблицы ниже.

  prod_name   prod_id   price    last_updated  
 ----------- --------- -------- -------------- 
  Prod B         2000   £10.00   2020-04-19    
  Prod A         1000   £8.00    2020-04-19    

  prod_name   prod_id   price    last_updated  
 ----------- --------- -------- --------------   
  Prod A         1000   £7.00    2020-04-20    

  prod_name   prod_id   price    last_updated 
 ----------- --------- -------- --------------   
  Prod A         1000   £7.00    2020-04-21    

И таблица price ниже

  prod_name   prod_id   price    last_updated  
 ----------- --------- -------- -------------- 
  Prod A         1000   £10.00   2020-04-17    
  Prod A         1000   £7.00    2020-04-18    
  Prod A         1000   £8.00    2020-04-19 

При выполнении запроса ниже сценарии 1,2 и 3 из приведенных выше примеров работают, однако пример 4 не работает работа.

INSERT INTO price (prod_name, prod_id, price, last_updated)
SELECT t1.prod_name, t1.prod_id, t1.price, t1.last_updated FROM holding t1
LEFT JOIN price t2 ON t2.prod_id = t1.prod_id and t2.price = t1.price
WHERE t2.prod_id IS NULL and t2.price IS NULL;

Таблица holding состоит из тех же 4 столбцов, что и цена, и генерируется ежедневно, и содержит все продукты, которые в настоящее время продаются, и их цену "на продажу" на день. holding таблица была заполнена

Любая поддержка для переполнения стека newb ie будет с благодарностью получена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...