-1

私は2つのテーブルを使用しています

言いましょう(これらのテーブルには他にもありますが、それは非常に単純なビューです)

Table1 is
sID   ResearchPaperID 
1     A1
2     A1
3     A1
4     A1


Table2 is
sID    Name
1     Person1
2     Person2
3     Person3
4     Person4

私がする必要があるのは、Person1の論文に関連付けられている(共同執筆した)が、出力にPerson1を表示していない人を見つけることです。

現在、私は次のようなものを持っています

SELECT Table2.sID, Table1.sID
FROM Table2, Table1
WHERE Table2.sID = Table1.sID
AND Table2.Name = 'Person1'

これにより、Person1が行ったすべてのことができます。

これは宿題の質問です。

サブクエリも使用できません。申し訳ありませんが、内部結合、外部結合、左/右結合、自然結合は使用しないでください。

基本的なコマンドを使用するだけで、上記のように難しくなることはないはずです。

[編集]出力は次のようになります

ResearchPaperID    Name
A1                 Person2
A1                 Person3
A1                 Person4

person1の論文の共著者であるが、出力にperson1が表示されていない人を見つけたい

4

3 に答える 3

1
SELECT * 
FROM Table1 t1
INNER JOIN Table1 t2 ON t1.ResearchPaperID = t2.ResearchPaperID
INNER JOIN Table2 t3 ON t1.SID = t2.SID
WHERE t3.Name = 'Person1'
于 2012-08-30T12:59:12.300 に答える
1

論文の主な著者を特定する方法を理解し、他のすべての人が共著者であると仮定する必要があります。それができたら、SQLクエリはそのメインライターを除外する必要がありますが、他のすべてを含める必要があります。

于 2012-08-30T12:59:29.203 に答える
1

サブクエリとJOINを使用しないソリューション:

select distinct t3.sID, t3.ResearchPaperID
from Table1 t1, Table2 t2, Table1 t3
where t1.sID = t2.sID and t2.Name = 'Person1'
  and t1.ResearchPaperID = t3.ResearchPaperID
  and t3.sID <> t2.sID       -- this restriction is the one that removes the 'Person1'
于 2012-08-30T13:13:58.920 に答える