0

次の2つのクエリは、Rstudiov_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)')

最初の答えは2番目の答えとはまったく異なる仕事をしているように見えますが、同じ答えの背後にある理由を理解していないようです。私はSQLの経験があまりないので、ご容赦ください。これに答えるには、データセットに関する詳細情報が必要ですか?

4

1 に答える 1

0

Though, as asked by Paul, the dataset would come in handy there are several overlaps between the two queries:

  • Both queries select people without children.
  • DISTINCT is a sort of easy GROUP BY to prevent duplicates, your first query would have the same result if there is only one childless parent per family tree-id.

Also, in your second query, , test as b serves no purpose.

于 2012-05-30T15:00:19.107 に答える