You need to enable JavaScript to run this app. SQL子查询关联表查询出版汽车类杂志的出版社所有期刊
优惠活动
大模型
产品
解决方案
定价
更多

SQL子查询关联表查询出版汽车类杂志的出版社所有期刊

错误原因

你现有SQL触发报错的核心原因是WHERE条件后的子查询返回了100行结果,数据库无法将多行结果直接作为布尔判断条件使用,同时现有子查询逻辑没有关联出版社ID,完全无法实现你要的筛选需求。

实现逻辑

要满足需求只需两步:

  • 第一步:筛选出分类为cars的前100条Magazine记录,提取这些记录对应的唯一Publisher_ID列表
  • 第二步:关联Magazine和Publisher全表,筛选出出版社ID在上述列表中的所有记录即可
修正后的SQL语句

通用适配MySQL、PostgreSQL等支持LIMIT语法的数据库:

SELECT m.*, p.*
FROM Magazine m
INNER JOIN Publisher p 
ON m.publisher_id = p.publisher_id
WHERE m.publisher_id IN (
    SELECT DISTINCT publisher_id
    FROM Magazine
    WHERE category = 'cars'
    LIMIT 100
)

如果使用SQL Server数据库,只需将子查询中的LIMIT替换为TOP语法即可:

SELECT m.*, p.*
FROM Magazine m
INNER JOIN Publisher p 
ON m.publisher_id = p.publisher_id
WHERE m.publisher_id IN (
    SELECT DISTINCT TOP 100 publisher_id
    FROM Magazine
    WHERE category = 'cars'
)
效果说明

上述语句返回的结果会包含所有出现在前100条cars类期刊对应的出版社旗下的全部期刊信息,包含Magazine和Publisher表的所有字段,可覆盖除cars外的其他分类,自动排除未出版过对应cars类期刊的出版社及相关记录,结果条数会远大于100,完全符合你的需求。

内容的提问来源于stack exchange,提问作者JLuu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 21:51:01