从视图查询中得到奇怪的结果

Getting strange results from view query

我正在测试由离开公司的其他人编写的数据库。
这是它的样子:

这里是查询:

SELECT DISTINCT 
       bcprod.product.item_number,
       bcprod.product.product_id,
       bcprod.product_price.price1,
       bcprod.product_price.price2,
       bcprod.product_price.price3,
       bcprod.product_price.price4,
       bcprod.product_price.option_value_id,
       bcprod.product_option.weight_class,
       bcprod.product_option.status
FROM bcprod.product
     INNER JOIN bcprod.product_price ON bcprod.product_price.product_id = bcprod.product.product_id
     INNER JOIN bcprod.product_option ON bcprod.product_option.product_id = bcprod.product.product_id
WHERE bcprod.product.is_sale = 1
  AND bcprod.product.status = 1
  AND bcprod.product_option.status = 1
 AND bcprod.product.product_id = 1

问题是当我检查 product_option 中的权重列时,我得到了 815 行,而未检查权重的情况下返回了 285 行(在没有最后一个 AND in where 子句的情况下进行测试)。每次进行更改时,我都会保存设计视图——之后我什至会刷新它。我检查了 product_price 和 product_option table 中的重复项,因为我认为 option_value_id 和 product_id:

有问题
select bcprod.product_price.product_id,
       bcprod.product_price.option_value_id,
       Count(*)
       from bcprod.product_price
group by bcprod.product_price.product_id,
         bcprod.product_price.option_value_id
having (Count(*)>1) 

我没有发现重复项 - 我需要一些关于如何解决这个问题的建议 - 我不太擅长使用数据库。 option_value_id 会翻倍,如果一个项目只有两行 - 检查重量后它会翻倍到 4 行 - 例如?

不正确的数据:

正确数据 - 无重量:

我能够通过修改查询来解决问题:

SELECT DISTINCT 
        bcprod.product.item_number,
        bcprod.product.product_id, 
        bcprod.product_price.price1, 
        bcprod.product_price.price2,
        bcprod.product_price.price3, 
        bcprod.product_price.price4, 
        bcprod.product_option.status AS option_status, 
        bcprod.product_option.weight_class,
        bcprod.product.category_id,
        bcprod.product_option.weight, 
        bcprod.product_price.option_value_id,
        bcprod.product.weight AS accessesory_weight, 
        bcprod.product.weight_class AS accessesory_weightclass, 
        bcprod.product.price, 
        bcprod.product.status AS main_status,
        bcprod.product.is_sale, 
        bcprod.product.is_accessory,
        bcprod.product.image, 
        bcprod.option_value.option_name
FROM            bcprod.product INNER JOIN
        bcprod.product_price ON bcprod.product_price.product_id = 
        bcprod.product.product_id INNER JOIN
        bcprod.product_option ON bcprod.product_option.product_id = 
        bcprod.product.product_id AND bcprod.product_price.option_value_id = 
        bcprod.product_option.option_value_id INNER JOIN
        bcprod.option_value ON bcprod.product_price.option_value_id = 
        bcprod.option_value.option_value_id AND 
        bcprod.product_option.option_value_id = 
        bcprod.option_value.option_value_id
 WHERE        (bcprod.product.status = 1)

如果有人能提出更好的主意 - 我洗耳恭听。 问题出在上次连接中 - 添加 AND。