2

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

表A:

| id | type   | name
| 1  | Person | Fred
| 2  | Animal | Rover
| 3  | Animal | Snowball
| 4  | Person | Mary

表B:

| id | city
| 1  | NYC
| 4  | Charlotte

私が欲しいもの:

| id | type   | name     | city
| 1  | Person | Fred     | NYC
| 2  | Animal | Rover    | NULL
| 3  | Animal | Snowball | NULL
| 4  | Person | Mary     | Charlotte

つまり、表Aは人と動物の表です。表Bは、人々が住んでいる都市の表です。(可能であれば、単一のクエリで)表Aからすべての結果を取得し、人の場合は、その人の都市を表Bで取得したいと思います。単一のクエリ?そうでない場合、最速の方法は何ですか?

単純な結合(たとえば、 "SELECT * FROM tableA、tableB WHERE tableA.id == tableB.id")を実行しようとしましたが、それを実行すると、動物ではなく、人の結果のみが取得されます。

どうも!

4

1 に答える 1

3

これに使用LEFT JOINする

SELECT  a.*, b.city
FROM    tableA a
        LEFT JOIN tableB  b
            ON a.ID = b.ID

SQLFiddleデモ

そして、人だけが記録を持っていると仮定しますtableB

于 2012-10-28T04:00:13.313 に答える