0

まず第一に、私は SQL がまったく初めてで、いくつかのチュートリアルやビデオを見て、検索を試みましたが、必要なものが見つかりませんでした。以前に尋ねたことは知っていますが、見つかりませんでした。

私が見つける必要があるのは、基本的に次のようなものです

Company.Name、Programmer.Name、Manager.Name、CEO.Name を選択します。

ここで、Company.City = Programmer.City = Manager.City = CEO.City

ロンドン出身の全員を選択します。

編集: 2 つのテーブルのみでこれを実行しようとしましたが、コードは次のとおりですが、エラーが発生しています

マルチパート識別子 "Company.Name" をバインドできませんでした。

SELECT Company.Name
    FROM Company Cm
    INNER JOIN Programmer Pg
        ON Cm.City = Pg.City
    WHERE Cm.City = 'London'
4

1 に答える 1

1

割り当てたエイリアスを使用してみてください。

SELECT Cm.Name
    FROM Company as Cm
    INNER JOIN Programmer as Pg
        ON Cm.City = Pg.City
    WHERE Cm.City = 'London'

パターンを拡張できます。

select Cm.Name, Cm.Address,
  Pg.Name, Pg.Address,
  Mgr.Name, Mgr.Address
  from Company as Cm inner join
    Programmer as Pg on Pg.City = Cm.City inner join
    Manager as Mgr on Mgr.City = Cm.City
  where Cm.City = 'London'

これにより、すべてのテーブルに一致するデータがある行が返されますCity

一部のデータが欠落している可能性がある場所(たとえば、マネージャーはあるがプログラマーはない)で行を返したい場合は、のleft outer join代わりにを使用しますinner join。使用する場合は、結合を外側から内側に変換しないように、句をouter join作成する際に注意が必要です。where

select Cm.Name, Cm.Address,
  Pg.Name, Pg.Address,
  Mgr.Name, Mgr.Address
  from Company as Cm left outer join
    Programmer as Pg on Pg.City = Cm.City left outer join
    Manager as Mgr on Mgr.City = Cm.City
  where Cm.City = 'London'
于 2013-01-06T02:41:47.930 に答える