SQL查询疑问:如何连接A4DEL与A4SPL表获取SPLNAME字段
问题分析与修正代码
你的代码存在两个核心问题:
- 未在查询中引入A4SPL表,直接引用
A4SPL.SPLNAME会导致语法错误 - 连接条件错误,两表的关联字段是
SPLNO,而非A4DEL.SPLNO与A4SPL.SPLNAME匹配
正确的写法应该使用INNER JOIN关联两张表,通过共同的SPLNO字段匹配供应商信息,同时筛选出商品名为'Sextant'的记录:
SELECT A4DEL.DELNO, A4SPL.SPLNAME, A4DEL.DEPTNAME FROM A4DEL INNER JOIN A4SPL ON A4DEL.SPLNO = A4SPL.SPLNO WHERE A4DEL.ITEMNAME = 'Sextant';
补充说明
- 使用
INNER JOIN确保只返回两张表中SPLNO匹配的记录,也就是有对应供应商信息的配送记录 - 字段前加上表名前缀(如
A4DEL.DELNO)可以避免字段名冲突,让代码更清晰 - 如果存在A4DEL中有
SPLNO但A4SPL中无对应记录的情况,且你想保留这些配送记录,可以将INNER JOIN替换为LEFT JOIN,此时SPLNAME会显示为NULL
内容的提问来源于stack exchange,提问作者Spaacemaan
相关产品推荐
相关产品推荐

