mysql - MySQL 中连接两个行数不同的表

标签 mysql join rows

我有两个表:

---------
|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 行),或者我在中重复了 item1,则我无法保留第一个表中的单个结果当我真正需要 Null 时的第一个表。

最佳答案

select *
from dogs left outer join cats

这将为您提供所有狗和任何匹配的猫。这意味着 Cat 列可以为空,但狗列不能为空。这是您要找的吗?

关于mysql - MySQL 中连接两个行数不同的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6268733/

相关文章:

R:purrr:使用 pmap 进行逐行操作,但这次涉及很多列

mysql - 如何更新 MySQL 表字段,其中 2 列匹配(电子邮件)但另一组列(成员 ID)未同步

php - 自动建议机场 - 如何在多个列中订购 "best match first"?

mysql - 将 mysql 查询转换为 sql server 查询

python - 几个多对多表与 sqlalchemy 连接

MySQL单表互条件查询

php - mysql join 对于一列返回 0,而其他列完好无损

php - Mysql 多连接表与 NULL 值

mysql - MySQL中每三行的总和

r - 将非 NA 值堆叠到每列的顶部