1

質問のタイトルが悪くてすみません。

私は2つのテーブル、仕事と人-仕事を持っています。

ジョブ表

1    Painting

2    Plumbing

3    Executive

4    CraneOperator

人-仕事表

JohnSmit   Painting

JohnSmit   CraneOperator

TomJones   Executive

BradPit    Plumbing

質問

2 つの列を返すクエリを実行したいと考えています。最初の列には、jobs テーブルのすべてのレコードを表示する必要があります。2 番目の列には、その仕事をしている人の名前を表示する必要があります。1 人のユーザー (この例では JohnSmit) の結果のみを返す where 句が必要です。例として、クエリは次のように出力する必要があります。

    Painting   JohnSmit

    Plumbing   *NULL*

    Executive  *NULL*

CraneOperator  JohnSmit

外部結合を試みましたが、Persons-Jobs テーブルに複数の人がいる場合に失敗します。

select j.job,p.person 
from jobs j 
LEFT OUTER JOIN `Persons-Jobs` p on j.job = p.job
where p.person='JohnSmit' 
or p.person is NULL

いつもありがとうございます。

よろしくお願いします。

4

1 に答える 1

4

結合句で人物に制限をかけることができます。そうすれば、参加する前に他の人が除外されます。

select j.job,p.person 
from   jobs j 
LEFT 
JOIN   `Persons-Jobs` p 
on     j.job = p.job 
and    p.person='JohnSmit'
于 2012-06-19T16:51:12.017 に答える