我要加入一些表格进行查找。
(宠物)
| 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表中是否有宠物?
感谢大家 :)
最佳答案
使用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
关于mysql - MySQL内部联接帮助-希望包括没有匹配项的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15031421/