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

MySQL两表连接查询问题:无法显示VENDOR.V_CODE求助

SQL查询无法显示VENDOR.V_CODE的原因及修复方案

问题出在哪

  • 字段名写错了:你写的SELECT VENDOR.VENDOR_CODE里的字段名不对,从JOIN条件VENDOR.V_CODE = PRODUCT.V_CODE能看出来,供应商表的编号字段实际是V_CODE,不是VENDOR_CODE,数据库找不到这个不存在的列,自然显示不出来。
  • GROUP BY不符合规则:MySQL默认开启ONLY_FULL_GROUP_BY模式,要求SELECT里的非聚合列必须都出现在GROUP BY里,或者是GROUP BY列的依赖字段(比如主键)。你只按V_NAME分组,但V_CODE既不在GROUP BY里,也没法通过V_NAME唯一确定,这会直接触发语法错误,查询根本跑不起来。
  • 没加平均价格计算:原代码没实现任务要求的AVG_PROD_PRICE(产品平均价格)统计。

修正后的代码

SELECT 
    VENDOR.V_CODE,
    VENDOR.V_NAME,
    COUNT(DISTINCT PRODUCT.P_CODE) AS NUM_PRODS,
    AVG(PRODUCT.P_PRICE) AS AVG_PROD_PRICE
FROM VENDOR
JOIN PRODUCT ON VENDOR.V_CODE = PRODUCT.V_CODE
GROUP BY VENDOR.V_CODE, VENDOR.V_NAME;

简单说明

  1. 把VENDOR.VENDOR_CODE改成VENDOR.V_CODE,对应表中实际存在的字段。
  2. GROUP BY同时包含V_CODE和V_NAME,既符合MySQL的聚合规则,也避免了不同供应商同名导致的分组错误。
  3. 加了AVG(PRODUCT.P_PRICE)来计算产品平均价格,满足任务要求。
  4. 用COUNT(DISTINCT PRODUCT.P_CODE)确保统计的是不同产品的数量,避免重复计数(如果同一产品有多条记录的话)。

内容的提问来源于stack exchange,提问作者Brayden de Koning

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 08:18:35