0

在 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 方面不是很有经验,所以请多多包涵。是否需要有关数据集的更多信息来回答这个问题?

4

1 回答 1

0

虽然,正如 Paul 所问的,数据集会派上用场,但两个查询之间有几个重叠:

  • 这两个查询都选择没有孩子的人。
  • DISTINCT 是一种简单的 GROUP BY 以防止重复,如果每个家谱 ID 只有一个无子父级,您的第一个查询将具有相同的结果。

此外,在您的第二个查询中,, test as b没有任何意义。

于 2012-05-30T15:00:19.107 回答