You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用单条MySQL查询获取一张表全量数据及另一张表指定字段?

正确的MySQL关联查询语句解决重复记录问题

你的查询语句错误原因是INNER JOIN未指定两表的关联条件,导致两个表产生笛卡尔积(所有行两两组合),再通过WHERE过滤后出现大量重复且分类名称不匹配的结果。

正确的查询语句需要用ON子句明确tbBooks和tbGenres的关联关系(利用外键genreId关联tbGenres的id),再过滤目标分类:

SELECT a.*, b.name 
FROM tbBooks AS a 
INNER JOIN tbGenres AS b ON a.genreId = b.id
WHERE a.genreId = 4;

补充说明

  • INNER JOIN只会返回两表中关联匹配成功的记录,即仅包含有对应分类的书籍。
  • 如果需要保留tbBooks中可能存在的无对应分类(genreId为NULL)的书籍,可改用LEFT JOIN:
SELECT a.*, b.name 
FROM tbBooks AS a 
LEFT JOIN tbGenres AS b ON a.genreId = b.id
WHERE a.genreId = 4;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 08:49:50