首页 > 解决方案 > 当一个值不属于第二个表时从两个表中收集数据

问题描述

我正在学习 sql 和外键。我现在陷入了一项我不知道如何进行的任务。

说明: 任务是收集table1的name_id、name、lastname和table2的game_id和game(见下表)。

问题: 我会使用 name_id 使用“WHERE table1.name_id = table2.name_id”从两个表中收集数据,但在该过程中 name_id 3 不会出现,因为它与 table2 没有连接。

代码将显示为缺少 name_id 3。

1       | name1| lastname1
2       | name2| lastname2

最佳结果

1       | name1| lastname1| 1| game1
2       | name2| lastname2| 2| game2
3       | name3| lastname3

问题:我如何收集这个值?这是逻辑问题还是我应该使用 JOIN 将它们放在一起?

table1
name_id | name | lastname
1       | name1| lastname1
2       | name2| lastname2
3       | name3| lastname3

table2
game_id | game | name_id
1       | game1| 1
2       | game2| 2

谢谢!

标签: sqlsqlite

解决方案


你想要一个left join

select *
from table1 t1 left join
     table2 t2
     using (name_id);

推荐阅读