因为您没有使用on子句。更改为:
SELECT a.`BW Parent Number`, a.`Vendor Name`, b.`Parent supplier Name`
FROM scrubs AS a
LEFT OUTER JOIN pdwspend AS b
ON a.`BW Parent Number` = b.`Child supplier ID`
and b.`BU ID` = 'BU_1'
AND b.`version` LIKE '%GOV%'
WHERE a.`year` = 2014
同样,分组依据也没有任何意义。如果您正在汇总某些内容,则可以使用group by子句。
根据您对重复行的评论,这可能是因为名为“ pdwspend”的表的每个“子供应商ID”都有多个行。这是该表上您要与之关联的“ scrubs”表的唯一字段。因此,是的,对于pdwspend上的每个匹配行,您将拥有与第二张表相同的行(该表上可能还有其他列,因此它们实际上不是“重复的”行,您只是没有选择足以说明的列)。
因为您只对选择的列数感兴趣,并且不希望基于这些列“重复”行,所以可以尝试使用以下方法来区分:
(您在注释中输入的查询中出现错误的原因是,因为内联视图(from子句中的子查询)未选择“父供应商名称”字段,所以是的,在该字段中不存在内联视图,因为您没有将其添加到该内联视图的选择列表中。
select a.`BW Parent Number`, a.`Vendor Name`, b.`Parent supplier Name`
from scrubs a
left join ( select distinct `Child supplier ID`, `Parent supplier Name`
from pdwspend
where `BU ID` = 'BU_1'
and `version` LIKE '%GOV') b
on a.`BW Parent Number` = b.`Child supplier ID`
where a.`year` = 2014