QUERY DATABASE:如何从 2 个表中获取多个数据,其 id 不存在于表中

Posted

技术标签:

【中文标题】QUERY DATABASE:如何从 2 个表中获取多个数据,其 id 不存在于表中【英文标题】:QUERY DATABASE: How can I get multiple data from 2 tables with an id that does not exist in a table 【发布时间】:2021-06-20 12:52:04 【问题描述】:

您好,我有以下两个表:

表:计算机 |编号 |电脑 |用户 ID | |:---|:---- -|:----| | 1 | M-1 | 25 | | 2 | P-1 | 15 | | 3 | C-2 | 36 | | 4 | A-5 | 0 | | 5 | G-3 | 0 | 表:用户 |编号 |姓名 | users_id | |:---|:-------|:----| | 1 |约翰 | 25 | | 2 |马克 | 15 | | 3 |汤姆 | 36 | 我想得到这个结果 | id(计算机) |名称_计算机 |用户名 | |:---|:-----|:--------| | 1 | M-1 |约翰 | | 2 | P-1 |马克 | | 3 | C-2 |汤姆 | | 4 | A-5 | (0 或空)| | 5 | G-3 | (0 或空)| 但是当我尝试得到这个结果时,我得到了这个结果 | id(计算机) | name_pc |用户 ID | |:---|:------|:------| | 1 | M-1 |约翰 | | 2 | P-1 |马克 | | 3 | C-2 |汤姆 | | 4 | A-5 |约翰 | | 4 | A-5 |马克 | | 4 | A-5 |汤姆 | | 5 | G-3 |约翰 | | 5 | G-3 |马克 | | 5 | G-3 |汤姆 | 我得到计算机 ID 4 和 5 以及所有可能的用户名。 在这种情况下,user_id '0' 不存在,但我希望值的结果 =(0 或空) 它可能得到我想要的结果吗?谢谢 事实上,我想获取计算机的 ID、计算机的名称和用户的名称,但如果 id 0 不存在我不知道我在做什么

【问题讨论】:

请包含生成结果的代码。 Cerdito,请尝试正确格式化您的表格。 【参考方案1】:

试试Left join

SELECT column_name(s) FROM table1
LEFT JOIN table 2
ON table1.pk = table2.fk

左边的所有行都应该显示出来,右边的数据应该和左边的数据一一对应。如果右边没有对应的数据,只会显示为null

【讨论】:

谢谢!有效!【参考方案2】:

这看起来像left join

select c.*, u.name
from computers c left join
     users u
     on c.user_id = u.user_id

【讨论】:

以上是关于QUERY DATABASE:如何从 2 个表中获取多个数据,其 id 不存在于表中的主要内容,如果未能解决你的问题,请参考以下文章

从 Advantage Database Server 10.1 表中删除重复行

如何使用相同的查询从 2 个表中删除数据? [复制]

如何在 Laravel 中将数据从 1 个视图插入到 2 个表中

如何从sql数据库中的2个表中获取多列数据?

如何根据搜索关键字 rails 从 2 个表中获取数据

如何使用 Spring Data JPA Repository 从 2 个表中查询?