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

MySQL两表INNER JOIN查询如何选取指定字段解决同名字段冲突

问题原因

你当前使用SELECT *查询存在两个核心问题:

  • 两张表存在added_on、modified_on、product_id三个同名字段,MySQL会默认保留后关联的product表的同名字段值,导致字段结果覆盖,无法拿到product_image表对应字段的正确值
  • 不符合你的字段选取规则:你只需要product表的3个指定字段,不需要product表的added_on、modified_on字段

调整后的查询语句

给表设置别名,明确指定要查询的字段即可:

SELECT 
  pi.*,
  p.product_id,
  p.product_name,
  p.price
FROM `product_image` pi
INNER JOIN `product` p ON pi.product_id = p.product_id
ORDER BY pi.`id` DESC

补充说明

如果你同时需要保留product表的added_on、modified_on字段用于对比,可以给重名字段设置别名区分:

SELECT 
  pi.*,
  p.product_id,
  p.product_name,
  p.price,
  p.added_on AS product_added_on,
  p.modified_on AS product_modified_on
FROM `product_image` pi
INNER JOIN `product` p ON pi.product_id = p.product_id
ORDER BY pi.`id` DESC

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 04:57:02