我有两个表;一个Magazine表,它通过两个表中共享的Publisher_ID列链接到Publisher表。
“杂志”的表格中有一列分类,这取决于特定杂志的内容(如时尚、名人、汽车、体育、狩猎等)。许多出版商的杂志种类繁多,但也有少数。
我想要运行一个查询,在其中我选择了“汽车”类别中的前100种杂志,然后让这些杂志加入到它们的相关出版商,但然后选择其他出版商的标题,而不管这些杂志是否是汽车。
我想从出版商那里挑选所有的杂志,这些杂志都是从最初的100本杂志中挑选出来的,这些杂志都是以汽车为中心的。
我希望得到的结果是“杂志”的所有专栏以及它们相关的联合出版商表格专栏,并且应该会产生超过100个杂志,其中包括类别--不仅仅是“汽车”杂志(Cars),而是只有至少一个杂志标题属于“汽车”类的出版商,而不包括任何不出版汽车杂志的出版商(及其相关杂志)。
我所使用的查询尝试如下:
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)
;我得到的输出是
Single-row subquery returns more than one row.抱歉,我想尽我所能来描述我想要达到的目标。
发布于 2021-08-14 22:48:27
你没说你是怎么选择100本杂志的。但是对于100个任意杂志,您可以使用IN或EXISTS
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
);https://stackoverflow.com/questions/68787529
复制相似问题