两个完全不同的查询的相同输出

时间:2012-05-30 12:21:38

标签: sql r sqldf

以下两个查询在R studio v_0.96

中运行时提供相同的输出

1)

ab<-sqldf('select a.Family_tree_id, a.parent_name
           from test as a, test as b 
           where a.child_id <> b.parent_id 
           group by a.Family_tree_id')

2)

cd<-sqldf('select a.Family_tree_id, a.parent_name
           from test as a
           where a.parent_name NOT IN 
           (select b.child_name from test as b)')

我似乎不明白同一答案背后的原因,虽然看起来第一个完成的工作与第二个完全不同。我对SQL不是很有经验,所以请耐心等待。是否需要更多关于数据集的信息才能回答这个问题?

1 个答案:

答案 0 :(得分:0)

尽管如Paul所说,数据集会派上用场,但两个查询之间有几个重叠:

  • 两个查询都会选择没有孩子的人。
  • DISTINCT是一种简单的GROUP BY来防止重复,如果每个族树ID只有一个没有子女的父,那么你的第一个查询会有相同的结果。

此外,在您的第二个查询中,, test as b没有用处。

相关问题