gpt4 book ai didi

Mysql 多对一或一对多

转载 作者:行者123 更新时间:2023-11-29 07:44:47 25 4
gpt4 key购买 nike

我有点困惑,需要一些帮助。我有 3 张 table 。

用户作品

+---------+-------------+--+--+
| user_id | project_id | | |
+---------+-------------+--+--+
| 5812 | 1938026 | | |
| 6390 | 1938026 | | |
| 32088 | 1938026 | | |
| 62830 | 1938026 | | |
| 64436 | 1938026 | | |
| 64441 | 1938026 | | |
| 77969 | 1938026 | | |
+---------+-------------+--+--+

Follow_works_on

+-------------+---------+
| follower_id | repo_id |
+-------------+---------+
| 64441 | 1938026 |
| 64441 | 477331 |
| 64441 | 477331 |
| 6390 | 1938026 |
| 6390 | 1529732 |
| 6390 | 477331 |
| 6390 | 477331 |
+-------------+---------+

关注用户

+---------+-------------+
| user_id | follower_id |
+---------+-------------+
| 5812 | 6390 |
| 5812 | 10561 |
| 5812 | 37664 |
| 5812 | 51794 |
| 6390 | 58 |
| 6390 | 302 |
| 6390 | 1340 |
| 6390 | 1471 |
| 6390 | 2316 |
| 6390 | 3448 |
| 64441 | 40399 |
| 64441 | 57411 |
| 64441 | 64111 |
| 64441 | 180542 |
| 64441 | 294196 |
+---------+-------------+

User_works_on显示用户正在处理的项目。 Follower_works_on 显示关注者所从事的项目。 Follows_users 显示哪些用户是其他用户的关注者。如果 id 是任何用户的关注者,我想链接两个项目。即我想在用户工作的项目和关注者工作的项目之间创建一个链接,假设它们之间存在关注者关系。

例如:

用户 5812 参与项目 1938026
关注者 6390 致力于项目 1529732
关注者 6390 关注用户 5812
因此,项目 1938026 和 1529732 之间存在链接。

我是 mysql 新手,所以我不知道如何构建这种关系。任何想法都会很棒。

结果看起来像这样

+---------+-------------+-------------+-------------+
| User_id | project_id1 | project_id2 | Follower_id |
+---------+-------------+-------------+-------------+
| 5812 | 1938026 | 1938026 | 6390 |
| 5812 | 1938026 | 1529732 | 6390 |
+---------+-------------+-------------+-------------+

最佳答案

SELECT project_id, repo_id
FROM User_Works_on AS u
JOIN Follows_user AS fu ON u.user_id = fu.user_id
JOIN Follower_Works_on AS f ON fu.follower_id = f.follower_id

DEMO

关于Mysql 多对一或一对多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28119169/

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