2014-09-26 24 views
0

我有以下SQL格式左连接mysql中选择(没有出现在左表中的所有记录)

SELECT * 
FROM (SELECT sample_register.usin, 
      Date_format(sample_register.doc, '%d-%m-%Y') AS doc1, 
      sample_register.location, 
      sample_register.description, 
      gamma_results.act, 
      gamma_results.act_sd, 
      gamma_results.mdl, 
      gamma_results.bdl 
    FROM sample_register 
      LEFT JOIN gamma_results 
       ON gamma_results.usin = sample_register.usin 
    WHERE Mid(sample_register.usin, 3, 1) = 'F' 
      AND sample_register.doc BETWEEN'2014-09-01' AND '2014-09-26' 
      AND sample_register.type <> 'WATER' 
      AND gamma_results.istp = 'Cs137' 
    ORDER BY Mid(sample_register.usin, 3, 1), 
      sample_register.doc, 
      sample_register.usin) AS a 
    LEFT JOIN (SELECT sample_register.usin, 
        gamma_results.act, 
        gamma_results.act_sd, 
        gamma_results.mdl, 
        gamma_results.bdl 
      FROM sample_register 
        LEFT JOIN gamma_results 
          ON gamma_results.usin = sample_register.usin 
      WHERE Mid(sample_register.usin, 3, 1) = 'F' 
        AND sample_register.doc BETWEEN 
         '2014-09-01' AND '2014-09-26' 
        AND (sample_register.type <> 'WATER') 
        AND gamma_results.istp = 'k40' 
      ORDER BY Mid(sample_register.usin, 3, 1), 
         sample_register.doc, 
         sample_register.usin) AS b 
     ON a.usin = b.usi 

它给我的只有2行。有30条记录满足sample_register中的where子句,4条记录对应于gamma_results中的2个USIN。我希望sample_register中的所有30条记录都与gamma_results相结合,其中数据只有2个USIN可用。在sample_register中剩余28条记录,返回的字段值可以为null。我发现如果我正在移除条件gamma_results_istp,则会显示所有30条记录。但我不想要这个。任何建议请。

+0

如果您喜欢,请考虑遵循以下简单的两步操作步骤:1.如果您尚未这样做,请提供适当的DDL(和/或sqlfiddle),以便我们可以更轻松地复制问题。 2.如果您尚未这样做,请提供与步骤1中提供的信息相符的所需结果集。 – Strawberry 2014-09-26 07:31:26

回答

0

不确定,但可能您必须将Where运算符的条件gamma_results_istp传递给ON运算符;否则它在执行左连接之后应用,而不是在之前:

... On (gamma_results.usin = sample_register.usin and gamma_results.istp='Cs137') 

对第二个gamma_results.istp条件重复同样的操作。

此外,为了向我们展示相关内容,简化示例并不会伤害任何人。

+0

它正在工作。谢谢 – mansoondreamz 2014-09-26 08:49:08

相关问题