如果该列可能存在或不存在,如何从表B中获取列?

时间:2012-10-28 03:59:02

标签: mysql sql

我有两张桌子:

表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”),但这样做只能得到人的结果,而不是动物。

THX!

1 个答案:

答案 0 :(得分:3)

在此

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

SQLFiddle Demo

并假设个人在tableB上有记录