Mysql 嵌套SQL查询
我有以下表格: 俱乐部:俱乐部| ID |头衔|创建|日期| 俱乐部ID:用户ID |俱乐部ID |访问权限 我正在尝试选择一个可变数量的俱乐部,并加入该俱乐部中访问权限最高的用户的ID。此人被视为所有者 因此,如果Club 100的成员A、B、C分别访问3、4和5:我希望最终查询从Club中选择:Mysql 嵌套SQL查询,mysql,join,intersect,nested-queries,Mysql,Join,Intersect,Nested Queries,我有以下表格: 俱乐部:俱乐部| ID |头衔|创建|日期| 俱乐部ID:用户ID |俱乐部ID |访问权限 我正在尝试选择一个可变数量的俱乐部,并加入该俱乐部中访问权限最高的用户的ID。此人被视为所有者 因此,如果Club 100的成员A、B、C分别访问3、4和5:我希望最终查询从Club中选择: Club.Club_ID Club.Title Club.Created_Date Club_Intersect.User_ID 100 |
Club.Club_ID Club.Title Club.Created_Date Club_Intersect.User_ID
100 | "Test Club" | "Creation Date" | C |
101 | "Test Club 2" | "Creation_Date" | Highest Access User |
...
没有经过测试,但你明白了
SELECT * FROM Club WHERE CLUB_ID = (SELECT Club_ID FROM Club_Intersect ORDER BY Access DESC LIMIT 1);
我认为,使用嵌套SQL查询选择您想要的俱乐部是可行的。您没有在返回的结果中指定所需内容,因为此查询只检索俱乐部列。这里有很多混淆。您的结果使用
Club.Date
和Club\u Intersect.Owner\u ID
,它们都不存在于给定的表中。您请求“最高”访问权限,但选择示例输出中最低(3<5)的用户…您的示例表列与查询结果列不匹配。既没有定义“俱乐部日期”也没有定义“俱乐部交集所有者ID”。对不起,你们都是对的,我太粗心了。现在应该更有意义了。可以假设只有一个用户具有最大访问权限吗?因为期望的结果是3,而不是5,你可能需要最小而不是最大…我认为期望的结果是最大访问权限(5)。实际上是5,很抱歉原来的输入错误。没关系,它被编辑了很多,我也有点困惑
SELECT * FROM Club WHERE CLUB_ID = (SELECT Club_ID FROM Club_Intersect ORDER BY Access DESC LIMIT 1);