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 回答