2012-08-28 32 views
2

我正在用PHP編寫一個工具的腳本,我已經用MYSQL說明了一種情況。我有兩張桌子,我需要合併才能得到我想要的結果。MYSQL結果需要組合表

我想出了這一點:

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 | 

回答

2

使用外連接:

SELECT names.id, names.name, names.dog_id, dogs.dog 
FROM names 
LEFT JOIN dogs 
ON dog_id = dogs.id;