SELECT
p.*,
MIN(wp.price * (1 + wpe.addition/100) * (1 + IFNULL(wpc.addition, 0)/100)) AS minimal_price,
COUNT(p.id) AS total_found
FROM products AS p
JOIN warehouses_products AS wp
ON p.id=wp.product_id
JOIN warehouses_permissions AS wpe
ON wpe.warehouse_id=wp.warehouse_id
LEFT JOIN warehouses_permissions_categories AS wpc
ON wpc.warehouse_permission_id=wpe.id
WHERE wpe.user_id=1 AND (wpc.id IS NULL OR wpc.category_id=p.category_id)
GROUP BY p.id
问:我应该如何修改我的数据库结构和查询,如果我想添加这个功能:用户可以有“共享”仓库 - 仓库拥有来自给定warehouse_permission的产品。
- 用户[1]:仓库[1]的产品 - >许可[1]仓库[1]一种用于用户[2]并加入[1]
- 用户[2]:能够看到仓库[1]添加[1] |用户[3]:能够看到仓库[2]的宽度增加值[2]用户[3]:能够查看仓库[2]的宽度增加[1] *添加[2]
如果要共享共享仓库,则会开始递归。
任何想法?
我知道OUTER JOINS,但仍然无法弄清楚如何得到想要的结果 – Ellis