首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过引用另一个表重新连接表的SQL子查询

问通过引用另一个表重新连接表的SQL子查询
EN

Stack Overflow用户
提问于 2021-08-14 22:45:16
回答 1查看 44关注 0票数 0

我有两个表;一个Magazine表,它通过两个表中共享的Publisher_ID列链接到Publisher表。

“杂志”的表格中有一列分类,这取决于特定杂志的内容(如时尚、名人、汽车、体育、狩猎等)。许多出版商的杂志种类繁多,但也有少数。

我想要运行一个查询,在其中我选择了“汽车”类别中的前100种杂志,然后让这些杂志加入到它们的相关出版商,但然后选择其他出版商的标题,而不管这些杂志是否是汽车。

我想从出版商那里挑选所有的杂志,这些杂志都是从最初的100本杂志中挑选出来的,这些杂志都是以汽车为中心的。

我希望得到的结果是“杂志”的所有专栏以及它们相关的联合出版商表格专栏,并且应该会产生超过100个杂志,其中包括类别--不仅仅是“汽车”杂志(Cars),而是只有至少一个杂志标题属于“汽车”类的出版商,而不包括任何不出版汽车杂志的出版商(及其相关杂志)。

我所使用的查询尝试如下:

代码语言:javascript
复制
SELECT Magazine.*,Publisher.*
FROM 
    Magazine
INNER JOIN 
    Publisher
ON
    Magazine.publisher_id = publisher.publisher_id
WHERE (SELECT Magazine.category
       FROM Magazine
       WHERE Magazine.category = 'cars' 
       LIMIT 100)
;

我得到的输出是

代码语言:javascript
复制
Single-row subquery returns more than one row.

抱歉,我想尽我所能来描述我想要达到的目标。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-14 22:48:27

你没说你是怎么选择100本杂志的。但是对于100个任意杂志,您可以使用IN或EXISTS

代码语言:javascript
复制
SELECT m.*, p.*
FROM Magazine m INNER JOIN 
     Publisher p
     ON m.publisher_id = p.publisher_id
WHERE p.publisher_id IN (SELECT m2.publisher_id
                         FROM Magazine m2
                         WHERE m2.category = 'cars' 
                         LIMIT 100
                        );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68787529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档