tbl_indicator
grp_nbr, sect_nbr, indicat
001234 100 p
002345 101 s
tbl_group
grp_id, grp_nbr, sect_nbr, indicat
333 001987 100 a
555 001987 100 p
444 002987 101 s
222 02987 101 y
Здесь (в tbl_group
) grp_id
является первичным ключом
tbl_order
order_id, grp_id
5000 333
5001 555
5002 555
5003 555
5004 444
5005 444
5006 222
В tbl_order
, grp_id
- это внешний ключ для grp_id
в tbl_group
.
В таблицеtbl_indicator
, для одного набора grp_nbr
и sect_nbr
есть indicat
, для того же набора grp_nbr
и sect_nbr
есть правильное indicat
(555,1, 100, p)и мусор indicat
(333, 1, 100, а) в таблице tbl_group
, но оба эти grp_id
(333, 555) присутствуют в таблице tbl_orders
.
И еще одна вещьздесь указывается, что нежелательные данные (индикаты) в групповой таблице (222, 02987, 101, у) grp_nbr
имеют на одну длину символа меньше, чем grp_nbr
в tbl_indicat
.Он должен использовать что-то вроде оператора «LIKE»
Как мы можем справиться с этим ??
Теперь мне нужно обновить таблицу tbl_order
таким образом, чтобы заменить ненужные grp_id
s.с правильными значениями grp_id
s
Вывод должен выглядеть следующим образом:
tbl_orders
order_id, grp_id
5000 555
5001 555
5002 555
5003 555
5004 444
5005 444
5006 444
У меня уже есть ответ, если оба столбца в данных tbl_indicat
и tbl_grp
таблицы одинаковы ...
Ответил 'Dr.Wily's Apprentice '
sql update (помогите мне)
но как справиться, если данные отличаются (например, пропущены некоторые строки при запуске)?