sql - 从另一个表中检索数据时,如果不使用 EXISTS 引入子查询,则选择列表中只能指定一个表达式
问题描述
以下是:SQL order by not allowed in subquery
现在我想从用户表中检索userid
和。username
这就是我所做的:
select * from user where user.username in (select top 30
username,
count(*) as n_plays
from plays
group by username
order by n_plays desc)
为什么我会收到错误消息?
解决方案
我不知道你为什么会收到这个错误。您有一个in
应该返回一列但返回两列的子查询。另一种用途join
:
select u.*
from user u join
(select top 30 username, count(*) as n_plays
from plays p
group by p.username
order by count(*) desc
) pu
on pu.username = u.username;
推荐阅读
- javascript - Redux 容器单元测试 - 无法访问包装组件的道具
- android - 并行运行多个虚拟Android系统
- fortran - 开放语句中“iostat”参数的含义是什么?
- wordpress - 如何使用 Wordpress 修剪单词功能
- wordpress - 如何在 docker-compose 中的 wordpress 和 wp-cli 之间共享卷
- dart - 看目录时如何处理dart中的FileSystemException
- html - 传递数据时换行符丢失?
- vb.net - VB.NET Youtube LIKE 和 DISLIKE 按钮类 VB.NET 的问题
- angular - 如何删除打字稿中的类
- c# - 实体框架 6 - 数据库架构未更新