1

我正在尝试创建以下子查询,但出现错误 - 操作数应包含 1 列。

select study_aid_id from study_aids_readers where study_aid_id 
in
 (
select s.id, s.title , p.name , s.type 
from study_aids s, profiles p 
where s.author_id = p.user_id and p.country_id = '30' and date(s.created_at) >= '2015-01-01' )

我正在尝试从 study_aids_readers 表中获取 id 列表,这些表存在于 study_aids 表中,然后将这些 id 与从配置文件表中创建学习辅助工具的配置文件进行比较。请帮助我或向我询问更多信息以防万一。

4

1 回答 1

1

MySQL 中的列表in只能有一列。

大概,你想要这样的东西:

select study_aid_id
from study_aids_readers
where study_aid_id in (select s.id
                       from study_aids s join
                            profiles p 
                            on s.author_id = p.user_id 
                       where p.country_id = '30' and date(s.created_at) >= '2015-01-01'
                      );

还要注意使用正确的显式join语法。

于 2015-09-10T16:33:46.163 回答