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 表中删除重复行