选择表中不存在的一行

时间:2011-12-05 03:46:28

标签: sql

我的sql字符串如下:

SELECT t.*
FROM table AS t
GROUP BY t.month

结果如:

ID  data month
1     0    1
2     1    2
3     2    4
4     3    5

我需要选择,例如,前五个月,所以我需要右外连接另一个表, 表格是这样的:

month
 1
 2
 3
 4
 5

这不是数据库中真正的表, 我期待的结果就像:

 ID  data month
 1     0    1
 2     1    2
            3
 3     2    4
 4     3    5

我该如何撰写此查询?

2 个答案:

答案 0 :(得分:0)

SELECT t.month
FROM table AS t
GROUP BY t.month
UNION SELECT FOO;

FOO替换为您要追加的值。

答案 1 :(得分:0)

我不清楚你的意思是加入。但这是其中一种可能的解释的解决方案(只返回那些未包含在另一个表中的行)

SELECT ....
FROM table AS t
WHERE t.month not in (
    SELECT id 
    FROM month
)
GROUP BY t.month