首页 > 解决方案 > 无法过滤 LEFT JOIN 上的行

问题描述

我有 SQL 脚本

这是代码

  UPDATE Companies
    LEFT JOIN abpusers a on a.CompanyId = companies.Id AND a.TenantId IS NOT NULL
SET Companies.TenantId = a.TenantId
WHERE Companies.TenantId = 3;

我尝试运行它并收到错误的问题

[23000][1048] 列 'TenantId' 不能为空

但我有条件AND a.TenantId IS NOT NULL必须过滤它

我的问题在哪里?

标签: mysqlsqldatabase

解决方案


由于您使用了 LEFT JOIN,因此某些公司行将没有匹配的 abpuser,这将导致 NULL。

您可以通过在同一个连接上执行 SELECT 并查看结果来查看它,而不是更新。


推荐阅读