MYSQL结果需要组合表

时间:2012-08-28 22:45:21

标签: mysql

我正在用PHP编写一个工具脚本,我用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  |

1 个答案:

答案 0 :(得分:2)

使用外部联接:

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