为什么条件写在子查询里进行关联和关联完写在最后的WHERE条件里数据不一样

  1. SELECT A.1
                   ,A.2
                   ,A.3
                   ,B.1
                   ,B.2  
      FROM   A  
    
    LEFT JOIN
                    B 
    
    ON 关联条件 WHERE A的条件 B的条件
  2. SELECT A.1
                    ,A.2
                    ,A.3
                    ,B.1
                    ,B.2  
        FROM (SELECT 1,2,3,0 FROM A WHERE 条件) AS A
    
    LEFT JOIN
                    (SELECT 1,2,0 FROM B WHERE 条件 )  AS B
    
    ON A.0=B.0
    为什么这样写的SQL 导致最后的结果不一样

肯定跟过滤条件有关系,sql发出来看看

因为你用的是left join , 你用join 就一致了
A表满足的条件,B表不满足 ,如果用子查询A表记录是依然存在的 , 不用子查询就会同时判断A,B 关联后的结果