gpt4 book ai didi

mysql - 多对多的复杂 MySQL 查询

转载 作者:行者123 更新时间:2023-11-30 00:55:46 25 4
gpt4 key购买 nike

我已经搜索并浏览了与我的类似的可用主题。但是,没能找到满足我要求的。因此,将其发布在这里。

我有四个表,如下所示:

"Organization" table:
--------------------------------
| org_id | org_name |
| 1 | A |
| 2 | B |
| 3 | C |

"Members" table:
----------------------------------------------
| mem_id | mem_name | org_id |
| 1 | mem1 | 1 |
| 2 | mem2 | 1 |
| 3 | mem3 | 2 |
| 4 | mem4 | 3 |

"Resource" table:
--------------------------------
| res_id | res_name |
| 1 | resource1 |
| 2 | resource2 |
| 3 | resource3 |
| 4 | resource4 |

"member-resource" table:
--------------------------------------------
| sl_no | mem_id | res_id |
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 2 | 1 |
| 4 | 4 | 3 |
| 5 | 3 | 4 |
| 6 | 2 | 3 |
| 7 | 4 | 3 |

我想根据组织找出不同资源的总数。预期输出如下:

| org_name       | Total Resources      |
| A | 3 |
| B | 1 |
| C | 1 |

我还想了解按组织划分的共享资源总数。预期输出如下:

| org_name       | Shared Resources     |
| A | 1 |
| B | 0 |
| C | 1 |

我们将非常感谢您在这方面的任何帮助。

问候。

最佳答案

它比您想象的要简单得多,特别是因为您甚至不需要 resource 表:

SELECT o.org_name, COUNT(DISTINCT mr.res_id) TotalResources
FROM member_resource mr
JOIN members m ON mr.mem_id = m.mem_id
JOIN organization o ON m.org_id = o.org_id
GROUP BY o.org_id

输出:

| ORG_NAME | TOTALRESOURCES |
|----------|----------------|
| A | 3 |
| B | 1 |
| C | 1 |

fiddle here .

关于mysql - 多对多的复杂 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20579898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com