У меня возникла эта проблема:
Запас на складе представлен строками в следующей таблице базы данных:
CREATE TABLE stock (
id SERIAL,
product_id integer NOT NULL REFERENCES products ( id ),
location_id integer NOT NULL REFERENCES locations ( id ),
package_id integer REFERENCES packages ( id ),
qty integer
);
Любые продукты, входящие в одну и ту же упаковку, должны,учитывая физические ограничения, присутствовать в том же месте на складе.К сожалению, из-за ошибок на уровне приложения некоторые строки базы данных нарушают это ограничение.
В таблице запасов содержится приблизительно два миллиона строк.
Напишите запрос к базе данных, чтобы определить затронутые строки.
Теперь я понимаю, что product_id
является внешним ключом, а также location_id
и package_id
в таблице stock
, но почему-то я очень запутался в том, как этого добиться.
Одна вещь, о которой я подумал, - это сравнить пакеты с продуктами, но я все еще застрял, потому что дело в том, что когда упаковка совпадает с товаром, их местоположение должно быть одинаковым.Итак, я пока не вижу общую картину.
Я немного утончен, лол, есть идеи о том, как к ней подойти?