0

簡単に説明する方法がわからないため、質問のタイトルは少しあいまいです。

私は3つのテーブルを持っています:

Project (projectid, name, description)
Person(personid, name, description)
ProjectPerson(projectid, personid)

Project と Person は、ProjectPerson テーブルを介して多対多の関係にあります

どのプロジェクトにも属していないすべての人を検索する SQL クエリを作成したいと考えています。

私には解決策があります。すべての人を取得し、ProjectPerson のすべてのエントリを取得し、ProjectPerson に存在する人のエントリを削除します。

しかし、それは少しばかげているようです。誰かが私にもっと良い方法をアドバイスできますか? 前もって感謝します

4

2 に答える 2

2

でこれを行うことができますleft join。次に、where句に一致がないかどうかを確認します。

select p.*
from Person p left outer join
     ProjectPerson pp
     on p.personid = pp.personid
where pp.personid is null
于 2013-08-31T12:35:40.723 に答える
0

Googleで解決策を見つけました。読んでくれてありがとう。

select * 
from Person 
where Person.personid not in (select personid from ProjectPerson)
于 2013-08-31T12:36:39.460 に答える