Mysql 将嵌套子查询转换为联接

Mysql 将嵌套子查询转换为联接,mysql,sql,Mysql,Sql,是否可以将此SQL转换为联接 SELECT (SELECT t2.id FROM items t2 WHERE t2.user_id = items.user_id ORDER BY [a list of cols that aren't stated here] LIMIT 1) AS id FROM items WHERE company_name = '....' GROUP BY use

是否可以将此SQL转换为联接

  SELECT (SELECT t2.id
            FROM items t2
           WHERE t2.user_id = items.user_id
        ORDER BY [a list of cols that aren't stated here]
           LIMIT 1) AS id
    FROM items
   WHERE company_name = '....'
GROUP BY user_id
为什么两者都有?只需使用:


这个查询不是真的有效;这是一种黑客行为,那么它应该做什么呢?请参阅@草莓,选择按用户分组的项目ID列表,但每个用户只返回一个项目。返回的每个用户的项目id由嵌套查询确定。这很难解析。您是否可以尝试使用实际示例(例如,带有ID和名称字段的users&groceries表)而不是通用的“tbl”、“col1”和“col2”?@HeatherGaye Ok来编写查询。更新了,哇。我不知道这样的函数存在。它有点工作,但我担心使用DISTINCT可能会增加开销。有加入的选择吗?@kylie
SELECT DISTINCT
不应该比
groupby
贵。我明白了。无论如何,如果我没有错的话,8.0版以后的版本支持它?我还在5.7上。
SELECT DISTINCT col3,
       FIRST_VALUE(col4) OVER (PARTITION BY col3 ORDER BY col1)
FROM tbl
WHERE col2;