sql - 我对我的 SQL 连接感到困惑,因为它返回的结果与我的预期不同
问题描述
我正在尝试将表中的两列连接到其他表中的单个列,即加入eng_id
和exam_id
从intable1
中。user_id
table2
select *
from table1 t1, table2 t2
where t1.eng_id = t2.user_id
and t1.exam_id = t2.user_id;
此查询仅返回table1 中eng_id
和exam_id
table1 中相似的记录(两个 id 都是 18 或 20),如果这两个 id 不同的任何记录,我看不到该记录。表 1 中的 Eng_id 和 Exam_id =(等于)表 2 中的 user_id
eng_id
虽然,表中充满了exam_id
不同的记录。
你能解释一下为什么会这样吗?这是我的结果:
解决方案
IF t1.eng_id = t2.user_id AND t1.exam_id = t2.user_id THEN t1.eng_id = t1.exam_id;
使用此 SQL,您将获得 t1.eng_id 等于 t1.exam_id 的所有记录。也许您想获取 t1.eng_id 或 t1.exam_id 等于 t2.user_id 的记录。为此,请使用以下 SQL:
SELECT *
FROM table1 AS t1, table2 AS t2
WHERE t1.eng_id = t2.user_id
OR t1.exam_id = t2.user_id;
推荐阅读
- installation - 在 Windows 10 上通过 anaconda 为 python3.7 安装 networkx v2.4
- database - 用 last_value() oracle 填充一行完整的行
- awk - 计数行 < 上一行所在的值 > 值
- c++ - 如何从其他类 n Qt C++ 调用 QTimer?
- typescript - 功能性 Javascript 数据库,但在一个类中
- wordpress - 我遇到了指向错误 IP 地址的 Google Cloud Platform WordPress 部署问题
- postgresql - 如何使用 pgadmin4 备份托管在云上的 postgres db?
- browser - Storybook 和主应用程序之间的字体看起来不同
- kubernetes - kubectl --token=$TOKEN 不以令牌的权限运行
- netlogo - 通过时间(刻度)绘制列表的元素