MySQL,其中concat的条件似乎无法正常工作

MySQL,其中concat的条件似乎无法正常工作,mysql,where-clause,concat,Mysql,Where Clause,Concat,由于基础表中包含了一个新列,因此必须扩展一个正常工作的MySQL查询。此列现在也与查询中的条件相关,因此我尝试通过使用CONCAT在条件部分包含新列来调整查询,但到目前为止运气不佳,这意味着我没有得到任何结果 在尝试了很长一段时间并查看了(例如此处)之后,我无法让它工作,因为查询确实给出了一个空结果 当我单独尝试查询的各个部分时,一切正常 这起到了作用: SELECT a, ... FROM tbl1 LEFT JOIN( SELECT a, ... FROM tbl2) AS tbl3

由于基础表中包含了一个新列,因此必须扩展一个正常工作的MySQL查询。此列现在也与查询中的条件相关,因此我尝试通过使用CONCAT在条件部分包含新列来调整查询,但到目前为止运气不佳,这意味着我没有得到任何结果

在尝试了很长一段时间并查看了(例如此处)之后,我无法让它工作,因为查询确实给出了一个空结果

当我单独尝试查询的各个部分时,一切正常

这起到了作用:

SELECT a, ... FROM tbl1
LEFT JOIN(
    SELECT a, ... FROM tbl2) AS tbl3 using (a)
 WHERE a 
 NOT IN (SELECT a FROM tbl4 where con=...) 
这并不是:

SELECT a, b , ... FROM tbl1
LEFT JOIN(  
      SELECT a, b, ... FROM tbl2) AS tbl3 using (a)
WHERE CONCAT(a, b)
NOT IN (SELECT CONCAT(a, b) FROM tbl4 where con=...) 

预期的查询结果应该是联接的结果,由NOT IN条件过滤。相反,我得到的是一个空的查询结果。

我认为您提供的查询可能太小,无法提供太多帮助,但在MySQL中,这种检查不需要CONCAT。MySQL支持元组上的条件,如((a1,b1),(a2,b2),…)中的
(a,b)
您的问题不清楚。。添加适当的数据样本,您的实际结果和预期结果
a
b
中不明确,其中CONCAT(a,b)
。您应该使用表别名作为前缀。关于不够清晰的注释:我编辑了我的问题,现在提供了代码比较。希望这能让它更清楚一点…tbl4的a和b中是否有空值?我认为您提供的查询可能太小,无法提供太多帮助,但在MySQL中,这种检查不需要CONCAT。MySQL支持元组上的条件,如((a1,b1),(a2,b2),…)中的
(a,b)
您的问题不清楚。。添加适当的数据样本,您的实际结果和预期结果
a
b
中不明确,其中CONCAT(a,b)
。您应该使用表别名作为前缀。关于不够清晰的注释:我编辑了我的问题,现在提供了代码比较。希望这能让它更清楚一点…tbl4的a和b中有空值吗?