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

PostgreSQL JSONB多表关联查询出错,求正确SQL语句

正确的SQL关联查询方案

原查询的错误点

  • 表名引用错误:误将cars.details写为products.details,还错误引用了不存在的products.nutrition表,实际需关联的是cars.details与cards.additions
  • 字段歧义:两张表均有value列,未指定所属表导致数据库无法识别
  • 字段缺失:未包含cards.additions中需要返回的size、color、additions字段
  • JSON提取优化:使用->会返回带双引号的JSON值,改用->>可直接获取纯字符串结果

正确的SQL查询语句

SELECT
  d.country_id,
  d.city_id,
  d.value ->> '$.model' AS model,
  d.value ->> '$.weight' AS weight,
  d.value ->> '$.description' AS description,
  a.value ->> '$.size' AS size,
  a.value ->> '$.color' AS color,
  a.value ->> '$.additions' AS additions
FROM cars.details d
INNER JOIN cards.additions a
  ON d.country_id = a.country_id 
  AND d.city_id = a.city_id;

核心说明

  • 给表设置别名d(对应cars.details)和a(对应cards.additions),既避免字段歧义,也让语句更简洁
  • 使用->>提取JSON字段,返回无引号的纯文本,更贴合业务展示需求
  • 严格按照需求筛选了所有需要返回的字段
  • 关联条件完全匹配你指定的country_id和city_id相等规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 22:35:14