SELECT t.*, m1.MD_DESCRIPTION AS mapping_column_1, m2.MD_DESCRIPTION AS mapping_column_2 FROM supplier_info t INNER JOIN uf_MDM_jyfzsj m1 ON t.VENDOR_CODE = m1.MD_NUM INNER JOIN uf_MDM_jyfzsj m2 ON t.HIS_BUYER_VENDOR_CODE = m2.MD_NUM; supplier_info t t.HIS_BUYER_VENDOR_CODE 不去除其中为null的数据sql
时间: 2023-08-02 18:10:49 浏览: 131
抱歉,我刚才的回答有误。在 SQL 中,使用 `INNER JOIN` 连接两个表时,只有在连接字段的值相等的情况下,才会在结果集中返回这两个表中的数据。因此,在上述 SQL 语句中,如果 `t.HIS_BUYER_VENDOR_CODE` 的值为 `null`,那么它就无法与 `uf_MDM_jyfzsj` 表中的任何一行进行匹配,从而不会出现在结果集中。
如果你想要排除 `t.HIS_BUYER_VENDOR_CODE` 字段为 `null` 的数据,可以将 `INNER JOIN` 改为 `LEFT JOIN`,并在 `WHERE` 子句中添加条件 `t.HIS_BUYER_VENDOR_CODE IS NOT NULL`,具体如下所示:
```sql
SELECT t.*, m1.MD_DESCRIPTION AS mapping_column_1, m2.MD_DESCRIPTION AS mapping_column_2
FROM supplier_info t
LEFT JOIN uf_MDM_jyfzsj m1 ON t.VENDOR_CODE = m1.MD_NUM
LEFT JOIN uf_MDM_jyfzsj m2 ON t.HIS_BUYER_VENDOR_CODE = m2.MD_NUM
WHERE t.HIS_BUYER_VENDOR_CODE IS NOT NULL;
```
在上述 SQL 语句中,使用了两个 `LEFT JOIN` 连接表,这样即使 `t.HIS_BUYER_VENDOR_CODE` 的值为 `null`,它仍然会出现在结果集中。然后在 `WHERE` 子句中添加条件 `t.HIS_BUYER_VENDOR_CODE IS NOT NULL`,就可以排除其中为 `null` 的数据了。
阅读全文