【发布时间】:2011-01-28 13:26:14
【问题描述】:
我正在查询返回所有用户的购物车,存储在 sb_carts 表中。存储在 sb_carts 中的产品信息通过两个键 product_sku 和 school_id 进行引用。它需要参考两者以返回具有独特库存水平等的独特产品。
当我执行以下查询时,它返回一行,我期待 3 行。 我尝试将内部连接分成两个单独的连接,但这仍然只返回 1 个结果。只加入一个键可以获得预期的结果,但可能会重新调整错误的产品。左连接返回 3 行,但某些数据缺少特定于产品的数据
这是我正在做的一个简化示例
选择 sb_carts.product_sku FROM sb_carts 内部加入 sb_products ON sb_products.sku = sb_carts.product_sku 和 sb_products.school_id = sb_carts.school_id 哪里 sb_carts.order_id = 0 AND sb_carts.user_id = 2 分组 sb_carts.cart_id完整的查询看起来像
选择 COUNT(DISTINCT sb_carts.cart_id) 作为数量, sb_carts.* FROM sb_carts INNER JOIN sb_children ON sb_children.child_id = sb_carts.child_id 内部加入 sb_school_entities ON sb_school_entities.school_id = sb_children.school_id 内部加入 sb_products ON sb_products.sku = sb_carts.product_sku AND sb_products.school_id = sb_carts.school_id 左加入 sb_houses ON sb_children.house_id = sb_houses.id 左加入 sb_refund_cart ON sb_carts.cart_id = sb_refund_cart.cart_id 哪里 sb_carts.order_id = 0 AND sb_carts.user_id = 2 按 sb_carts.child_id、sb_carts.product_sku、sb_carts.school_id 分组 按 sb_children.dob_year、sb_children.dob_month、sb_children.dob_day ASC 排序【问题讨论】:
标签: mysql inner-join