2

私はPHPを使用してツールのスクリプトを作成しており、MYSQLを使用して状況を説明しました。必要な結果を得るために組み合わせる必要のある2つのテーブルがあります。

私はこれを思いついた:

SELECT * FROM names, dogs WHERE dog_id = dogs.id;

しかし、これを行うと、結果にはdog_id=NULLの行は含まれません。そして、私もそれらの結果が必要です。

TABLE NAMES
|  *id*  | *name*  |  *dog_id* |  
|   1    |  name1  |    NULL   |
|   2    |  name2  |     1     |
|   3    |  name3  |     NULL  |
|   4    |  name4  |     2     |  

TABLE DOGS  
|  *id*  |  *dog*  | 
|   1    |  dog1   |  
|   2    |  dog2   |  

これらの結果を取得する方法:

RESULTS
|  *id*  |  *name*  |  *dog_id* |  *dog*  |
|   1    |   name1  |    NULL   |   NULL  |
|   2    |   name2  |    1      |   dog1  |
|   3    |   name3  |    NULL   |   NULL  |
|   4    |   name4  |    2      |   dog2  |
4

1 に答える 1

2

外部結合を使用します。

SELECT names.id, names.name, names.dog_id, dogs.dog
FROM names
LEFT JOIN dogs
ON dog_id = dogs.id;
于 2012-08-28T22:46:53.533 に答える