我有几张桌子正在加入查询.
(宠物)
| 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 |
Run Code Online (Sandbox Code Playgroud)
(所有者)
| id | owner_name |
--------------------
| 1 | Jeff |
| 2 | (Kathy) |
| 3 | Tom |
Run Code Online (Sandbox Code Playgroud)
当我像这样做一个内部联接:
SELECT
OWNER.id, OWNER.owner_name, PET.pet_name, PET.size
FROM OWNER
INNER JOIN PET ON PET.owner_id = OWNER.id
Run Code Online (Sandbox Code Playgroud)
我得到这样的结果:
| 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 |
Run Code Online (Sandbox Code Playgroud)
凯西不在结果中.我理解为什么.但我希望凯西能够参与其中.我想让所有的主人出现,无论他们是否有宠物 - 以及那些与这个联接合并的人.
如何让所有OWNER表显示PET表连接中的所有所有者 - 无论他们在PET表中是否有宠物?
感谢大家 :)
使用LEFT JOIN而不是INNER
SELECT
OWNER.id,
OWNER.owner_name,
PET.pet_name,
PET.size
FROM OWNER
LEFT JOIN PET
ON PET.owner_id = OWNER.id
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2342 次 |
| 最近记录: |