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

如何将对相同表执行的两条SQL查询合并为符合左表行保留要求的单条查询

合并后SQL实现

以下是符合要求的合并查询代码,保留sku表所有符合条件的行,即使关联的country、hs_codes表无匹配数据也会返回结果:

$sql = "SELECT country.printable_name, hs_codes.hs_code FROM sku"
    . " LEFT OUTER JOIN country ON country.numcode = sku.c_code"
    . " LEFT JOIN hs_codes ON sku.base_category = hs_codes.base_category AND sku.sub_category = hs_codes.sub_category"
    . " WHERE sku.item_sku = 'JDJ2020'";

实现说明

  • 主表为sku,先通过WHERE条件筛选出item_sku = 'JDJ2020'的目标行,作为左表的基准数据
  • 沿用原有逻辑保留country表的左外连接,无匹配国家数据时printable_name字段返回NULL,不会丢弃sku行
  • 将原有hs_codes表的内连接改为左连接,匹配条件不变,无对应海关编码数据时hs_code字段返回NULL,满足左表数据全部返回的要求
  • 一次查询即可同时获取国家名称和海关编码两个字段,无需执行两次查询

注意:原有代码拼接SQL时未在sku后添加空格,直接拼接JOIN关键字会出现语法错误,上述代码已补充对应的空格避免该问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 14:48:03