我有两张桌子:
---------
|dogs |
---------
|item_1 |
| |
| |
| |
---------
---------
|cats |
---------
|item_1 |
|item_2 |
|item_3 |
|item_4 |
---------
所以我想加入这样的表:
------------------
|dogs | cats |
------------------
|item_1 | item1 |
|NULL | item2 |
|NULL | item3 |
|NULL | item4 |
------------------
我在第二个表中使用了一个条件,但如果找不到任何内容,我仍然希望从第一个表中得到这样的结果:
------------------
|dogs | cats |
------------------
|item_1 | NULL |
------------------
这些表没有ID字段,但我也可以添加一个ID来建立项目之间的关系。
我已经尝试了不同的解决方案,但是如果在使用条件(我得到0行)时在第二个表中找不到任何内容,我就无法保留第一个表中的单个结果,或者我重复了第1项我实际需要Null时的第一个表。
答案 0 :(得分:1)
select *
from dogs left outer join cats
这会给你所有的狗和任何匹配的猫。这意味着Cat列可以为null,但是dog列不能。这是你在找什么?
答案 1 :(得分:0)
当您向两个表添加id时,您可以使用SQL left join来匹配右表和左表中的所有数据。
来自W3Schools:
LEFT JOIN关键字返回左表(table_name1)中的所有行,即使右表(table_name2)中没有匹配项也是如此。