我有以下查询:
SELECT
a.id,
c.c_date
FROM table_a a ,
table_c c
WHERE
a.id = c.id AND
a.id IN (SELECT id from table_c where c_date is null);
我有两个表,table_a
和table_c
。
我加入这两个表,但是后来使用IN
语句只显示其中table_c
并且c_date列设置为null的id。 / p>
此查询会返回id, and c_date values, and some of the c_date values are not null
,这怎么可能?
我认为在我的子查询中我只选择了具有空c_dates的id?
答案 0 :(得分:2)
这应该在没有子查询的情况下工作,假设您不想返回null
个日期。请注意使用join
:
SELECT a.id,
c.c_date
FROM table_a a
JOIN table_c c ON a.id = c.id
WHERE c_date is null;
如果没有样本数据和预期结果,很难回答您的具体问题。您可能在table_c
中有多条与id
中的table_a
字段匹配的记录。
答案 1 :(得分:0)
使用此示例更容易解释:
<强>表-A 强>
id col_x col_...
1
2
<强> table_c 强>
id c_date col_m col_...
1 null
1 03/14/2016
2 04/14/2016
您应该考虑在结果集上检查您的意图。将您的查询更改为@sgeddes答案是一种方式。