Mysql 在SQL中连接三个表
好吧,这似乎太容易了,但我们都没有得到想要的结果,结果应该是这样的:Mysql 在SQL中连接三个表,mysql,sql,Mysql,Sql,好吧,这似乎太容易了,但我们都没有得到想要的结果,结果应该是这样的: User uid name Roles uid role_id Subscriptions uid subscriptions_id user roles subscriptions 1 2,3 1,4,5 2 2,4 4,5,6 .... user roles subscriptions 1 2,3 5 2 2,4 6 .... SELECT User.name,
User
uid name
Roles
uid role_id
Subscriptions
uid subscriptions_id
user roles subscriptions
1 2,3 1,4,5
2 2,4 4,5,6
....
user roles subscriptions
1 2,3 5
2 2,4 6
....
SELECT User.name,
GROUP_CONCAT(Roles.role_id),
GROUP_CONCAT(Subscriptions.subscriptions_id)
FROM User
LEFT JOIN Roles ON User.uid = Roles.uid
LEFT JOIN Subscriptions ON Users.uid = Subscriptions.uid
相反,结果如下所示:
User
uid name
Roles
uid role_id
Subscriptions
uid subscriptions_id
user roles subscriptions
1 2,3 1,4,5
2 2,4 4,5,6
....
user roles subscriptions
1 2,3 5
2 2,4 6
....
SELECT User.name,
GROUP_CONCAT(Roles.role_id),
GROUP_CONCAT(Subscriptions.subscriptions_id)
FROM User
LEFT JOIN Roles ON User.uid = Roles.uid
LEFT JOIN Subscriptions ON Users.uid = Subscriptions.uid
select命令如下所示:
User
uid name
Roles
uid role_id
Subscriptions
uid subscriptions_id
user roles subscriptions
1 2,3 1,4,5
2 2,4 4,5,6
....
user roles subscriptions
1 2,3 5
2 2,4 6
....
SELECT User.name,
GROUP_CONCAT(Roles.role_id),
GROUP_CONCAT(Subscriptions.subscriptions_id)
FROM User
LEFT JOIN Roles ON User.uid = Roles.uid
LEFT JOIN Subscriptions ON Users.uid = Subscriptions.uid
顺便说一句,小组讨论不是问题。如果我不考虑这一点,我仍然会得到这样的结果:
User
uid name
Roles
uid role_id
Subscriptions
uid subscriptions_id
user roles subscriptions
1 2,3 1,4,5
2 2,4 4,5,6
....
user roles subscriptions
1 2,3 5
2 2,4 6
....
SELECT User.name,
GROUP_CONCAT(Roles.role_id),
GROUP_CONCAT(Subscriptions.subscriptions_id)
FROM User
LEFT JOIN Roles ON User.uid = Roles.uid
LEFT JOIN Subscriptions ON Users.uid = Subscriptions.uid
而不是
user roles subscriptions
1 2 5
1 3 5
2 2 6
我试过这个:
user roles subscriptions
1 2 1
1 3 4
1 - 5
我得到了这个:
SELECT User.uid,
GROUP_CONCAT(DISTINCT Roles.role_id),
GROUP_CONCAT(DISTINCT Subscriptions.subscriptions_id)
FROM User
LEFT JOIN Roles ON User.uid = Roles.uid
LEFT JOIN Subscriptions ON User.uid = Subscriptions.uid
GROUP BY User.uid
这是你的结果吗
user roles subscriptions
1 2,3 1,5,4
2 2,4 4,5,6