首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL中的递归查询

SQL中的递归查询
EN

Stack Overflow用户
提问于 2013-08-05 09:40:35
回答 2查看 212关注 0票数 2

代码语言:javascript
复制
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的产品。

  • User1: Warehouse1 with products -> Permission1 for Warehouse1 for User2 with addition1
  • User2:能够从Permission1 -> Permission2 for Warehouse2 ( User2 width addition2 )中看到带有addition1 \ Warehouse2“共享”的Warehouse1
  • User3:能够看到Warehouse2宽度加法1*加法2

如果希望共享共享仓库,则开始递归。

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2013-08-05 10:34:52

  1. 那将是一个OUTER JOIN。有两种类型:LEFT OUTER JOINRIGHT OUTER JOIN。与INNER关键字一样,OUTER关键字是可选的。对于每个LEFT JOIN,都有一个逻辑上等价的RIGHT JOIN。因此,RIGHT JOIN是罕见的。通过实例比较了LEFT JOINRIGHT JOIN在SO上的搜索结果。
  2. 见上文
票数 0
EN

Stack Overflow用户

发布于 2013-08-06 06:33:04

我会合并warehouses_permissions & warehouse_permissions_categories来解决大部分问题。如果以后需要的话,您可以将其划分或提出其他结构。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18054975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档