我有点困惑,需要一些帮助。我有3张桌子。
User_Works_on
+---------+-------------+--+--+
| user_id | project_id | | |
+---------+-------------+--+--+
| 5812 | 1938026 | | |
| 6390 | 1938026 | | |
| 32088 | 1938026 | | |
| 62830 | 1938026 | | |
| 64436 | 1938026 | | |
| 64441 | 1938026 | | |
| 77969 | 1938026 | | |
+---------+-------------+--+--+
Follower_works_on
+-------------+---------+
| follower_id | repo_id |
+-------------+---------+
| 64441 | 1938026 |
| 64441 | 477331 |
| 64441 | 477331 |
| 6390 | 1938026 |
| 6390 | 1529732 |
| 6390 | 477331 |
| 6390 | 477331 |
+-------------+---------+
Follows_user
+---------+-------------+
| 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 |
+---------+-------------+-------------+-------------+
答案 0 :(得分:2)
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