我对SQL很新,所以如果有一个简单的解决方案就道歉。
我有这条SQL在3个表上执行连接。
SELECT a.group_leader, b.forum_name
FROM flightuser_group a
INNER JOIN flightacl_groups c ON a.group_id = c.group_id
JOIN flightforums b ON c.forum_id = b.forum_id
WHERE a.user_id = '60'
ORDER BY a.group_leader DESC
此查询返回:
group_leader forum_name
1 tmpSQJ
0 jobby7
0 jobby5
0 tmpSQJ
我试图只保留第一个tmpSQJ条目并删除第二个,但无法确定DISTICT子句的去向。
非常感谢提前。
答案 0 :(得分:0)
对于MySQL,请在LIMIT 1
之后添加ORDER BY
。
对于MS SQL,请在TOP 1
之后添加SELECT
。
这两种风格只会让你获得记录集中的第一条记录。
答案 1 :(得分:0)
您可以尝试基本上表现相同的GROUP BY:
SELECT a.group_leader, b.forum_name
FROM flightuser_group a
INNER JOIN flightacl_groups c ON a.group_id = c.group_id
JOIN flightforums b ON c.forum_id = b.forum_id
WHERE a.user_id = '60'
GROUP BY b.forum_name
ORDER BY a.group_leader DESC
您还可以查看 flightforums
的“ INNER JOIN ”答案 2 :(得分:0)
试试这个:
SELECT MAX(a.group_leader), b.forum_name
FROM flightuser_group a INNER JOIN flightacl_groups c ON a.group_id = c.group_id
JOIN flightforums b ON c.forum_id = b.forum_id
WHERE a.user_id = '60'
GROUP BY b.forum_name
ORDER BY a.group_leader DESC