sql - 当一个值不属于第二个表时从两个表中收集数据
问题描述
我正在学习 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
谢谢!
解决方案
你想要一个left join
:
select *
from table1 t1 left join
table2 t2
using (name_id);
推荐阅读
- botframework - 使用 CI/CD 管道部署时技能不起作用
- google-apps-script - 当其中的问题总数超过服务提供的最大值时,如何合并 Google 表单?
- python - TortoiseHg (Mercurial) 找不到 hggit 扩展
- apache-kafka - kafka exporter : 查询获取当前消费者数量
- mysql - 更新子查询错误你不能指定目标表
- linux - 无法使用 debuginfo-install 安装
- java - iconImages 不工作:线程“AWT-EventQueue-0”中的异常 java.lang.NullPointerException
- python - 尝试使用输入创建 txt 文件时,它不起作用
- android - 如何启动超过 16 个 CPU 的 Android 模拟器
- json - 基于Spring的rest服务返回html而不是json