Mysql JOIN子查询

时间:2014-01-14 08:36:53

标签: mysql join

我该如何查询

  • 我有(table1)行,在其他表
  • 中可以没有或有几行引用它
  • 这些引用(table2)行的colum1可以为null或date

我想让table1中的所有行在table2中将所有行column1都不为null或根本没有行。

当然基本的sql就像:

SELECT table1.* FROM table1 JOIN table2 ON table2.id = table1.table2_id

但接下来会发生什么?

1 个答案:

答案 0 :(得分:1)

您可以在查询中计算null的出现次数,例如SUM(CASE WHEN table2.col IS NULL THEN 1 ELSE 0 END) AS nullcount,我假设table2.col是其中包含null的日期

SELECT 
  table1.*,
  SUM(
    CASE
      WHEN table2.col IS NULL 
      THEN 1 
      ELSE 0 
    END
  ) AS nullcount 
FROM
  table1 
  JOIN table2 
    ON table2.id = table1.table2_id 
HAVING nullcount > 0