У меня проблема, когда разная информация о клиентах находится на совершенно разных серверах.
Мое решение пока состоит в том, чтобы взять необходимые части с каждого сервера и объединить их в MySQL.
Моя проблема: я хочу заменить значения NULL из одной таблицы в MySQL информацией из другой таблицы, когда NULL в первой таблице, при условии совпадения других столбцов.
Информация будет отображаться во второй таблице только тогда, когда столбцы отображаются как NULL в столбце OrderName и -1 в столбце Order_ID из исходной таблицы. Эта вторая таблица будет содержать недостающую информацию и будет выровнена с другими столбцами, такими как Cust_ID и DateTime.
E.g.
Таблица 1:
Cust_ID | Order_ID | OrderName | DateTime | Other_Info
------------------------------------------------------------------------------
12345 | -1 | NULL | 2016/01/01 | Info1
12345 | 1254 | Orange | 2016/02/03 | Info2
54321 | 5412 | Apple | 2016/04/15 | Info3
45899 | -1 | NULL | 2016/06/08 | Info4
Таблица 2:
Cust_ID | OrderID | OrderName | DateTime
-------------------------------------------------------------
12345 | 1549 | Banana | 2016/01/01
45899 | 5862 | Grape | 2016/06/08
Желаемый результат:
Cust_ID | Order_ID | OrderName | DateTime | Other_Info
------------------------------------------------------------------------------
12345 | 1549 | Banana | 2016/01/01 | Info1
12345 | 1254 | Orange | 2016/02/03 | Info2
54321 | 5412 | Apple | 2016/04/15 | Info3
45899 | 5862 | Grape | 2016/06/08 | Info4
Я пробовал использовать предложения CASE WHEN в сочетании с функцией COALESCE, чтобы добиться этого, но пока безуспешно.
Можно ли это сделать в MySQL?
Если это так, мы будем очень признательны за любые рекомендации о том, как этого добиться.
Спасибо за вашу помощь.
sql-server
- person ahmed abdelqader   schedule 13.12.2016