【发布时间】:2013-02-22 19:05:38
【问题描述】:
我有几张表要加入查找。
(宠物)
| id | owner_id | pet_name | size |
--------------------------------------
| 1 | 1 | Sparky | L |
| 2 | 1 | Spot | L |
| 3 | 3 | FooFoo | M |
| 4 | 3 | Barky | L |
| 5 | 3 | Jeb | S |
(所有者)
| id | owner_name |
--------------------
| 1 | Jeff |
| 2 | (Kathy) |
| 3 | Tom |
当我像这样进行内部连接时:
SELECT
OWNER.id, OWNER.owner_name, PET.pet_name, PET.size
FROM OWNER
INNER JOIN PET ON PET.owner_id = OWNER.id
我得到这样的结果:
| id | owner_name | pet_name | size |
------------------------------------------
| 1 | Jeff | Sparky | L |
| 1 | Jeff | Spot | L |
| 3 | Tom | FooFoo | M |
| 3 | Tom | Barky | L |
| 3 | Tom | Jeb | S |
Kathy 不在结果中。我明白为什么。但我希望凯西出现在结果中。 我希望所有所有者都出现,无论他们是否有宠物 - 以及那些确实与此加入合并的所有者。
如何让所有 OWNER 表显示与 PET 表连接的所有所有者 - 无论他们在 PET 表中是否有宠物?
谢谢大家:)
【问题讨论】:
-
修复是 G-Nugget 建议的(以及来自 raheel shan 的答案)。将关键字
INNER替换为关键字LEFT。瞧!
标签: mysql inner-join