如何使用INNER JOIN实现双ID关联的SQL表查询,得到指定输出
数据库查询需求与实现
现有数据表
1. Customer表
包含Cid、name、SID字段,其中Cid与SID值一致:
| Cid | name | SID |
|---|---|---|
| 1 | Aman | 1 |
| 2 | Cash | 2 |
2. transtion表
包含TID.、Cid、debit、Credit、SID字段:
| TID. | Cid | debit | Credit | SID |
|---|---|---|---|---|
| A1 | 1 | 400 | 0.00 | 2 |
| A2 | 2 | 0.00 | 400 | 1 |
目标输出
需要使用INNER JOIN编写SQL查询,得到如下格式的结果:
| Name. | Debit | credit | sid name |
|---|---|---|---|
| Aman | 400 | 0.00 | Cash |
| Cash | 0.00 | 400 | Aman |
实现SQL语句
SELECT c.name AS `Name.`, t.debit AS `Debit`, t.Credit AS `credit`, s.name AS `sid name` FROM transtion t INNER JOIN Customer c ON t.Cid = c.Cid INNER JOIN Customer s ON t.SID = s.Cid;
语句说明
- 第一次
INNER JOIN关联transtion表和Customer表,通过Cid匹配,获取交易对应的客户名称; - 第二次
INNER JOIN再次关联Customer表(取别名s),通过transtion表的SID匹配Customer表的Cid,获取交易对应SID的客户名称; - 使用
AS关键字为字段设置别名,匹配目标输出的列名。
内容的提问来源于stack exchange,提问作者Neha Pandey
相关产品推荐
相关产品推荐

