У меня есть страница со скидкой, на которой я могу добавлять товары со скидкой.
Каждый продукт отображается с рядом вариантов продукта, которые затем можно снять, если они не являются частью скидки.
Когда я нажимаю сохранить, каждый «ПРОВЕРЕНО» ProductId и VariantId будет храниться в таблице с именем StoreDiscountRuleVariant.
Если для редактирования открывается существующая страница скидки, то мой запрос SQL больше не выбирает непроверенные варианты продукта из таблицы ProductVariant, а только "проверенные", которые были сохранены.
Я хочу, чтобы запрос SQL возвращал оба варианта ProductVariants, которые имеют соответствующий внешний ключ optionId в таблице StoreDiscountRuleVariant
, а также те, которые не имеют. Мне также понадобился бы дополнительный возвращаемый столбец, который показывает, действительно ли в таблице StoreDiscountRuleVariant
присутствовал variableId - например, isChecked = true / false.
Я думаю, что это решение будет лучше, чем сохранение обоих проверенных а также непроверенные варианты-идентификаторы в таблице StoreDiscountRuleVariant
после сохранения, поскольку новые варианты продукта, добавленные после внесения этой скидки, не будут отображаться при редактировании.
Мне указали в направлении этого: 1016 *
SELECT p.productid, pv.variantnameSE, pv.sku, pv.variantId,
rv.discountrulevariantid, rv.productvariantid FROM
dbo.StoreDiscountRuleVariant rv INNER JOIN dbo.Product p ON p.productId =
rv.productid LEFT JOIN dbo.productVariant pv ON pv.foreignProductId =
p.productId WHERE rv.discountruleid = 24
Вот результат:
Row1:
produktid: 1326, вариантnamese: Vit, sku: FOD46-1, вариант.variantid: 822, discountrulevariantid: 572 , discountrulevariant.productvariantid: 1035
ROW2:
produktid: 1326, вариант имени: Сварт, sku: FOD46-2, вариант. Вариант: 1035, скидка 1027 *
Только ROW2 / variantid: 1035 существует в таблице StoreDiscountRuleVariant. Поэтому, по крайней мере, для меня странно то, что дисконтрулевариантид указывает на 1035 в обоих рядах. не должно быть Row1 discountrulevariantid: значение пустым, поскольку variantid: 822 не существует в StoreDiscountRuleVariant.