class_info
id | class_name |
2 | s204 |
5 | s205 |
1 | s207 |
7 | s203 |
match_info
id | host_id | guest_id | match_time | match_result |
1 | 2 | 1 | 2018-12-10 | 45:62 |
2 | 2 | 7 | 2018-12-16 | 55:50 |
3 | ||||
4 | ||||
5 |
1、題目需求:已知某學校組織籃球比賽,現在有兩張表class_info 和 match_info,需要通過查詢獲得如下格式表格信息:
host | guest | match_time | match_result |
s204 | s207 | 2018-12-10 | 45:62 |
s204 | s203 | 2018-12-16 | 55:50 |
2、分析:利用左連接查詢,同時根據實際情況,match_info需要連接class_info兩次(可以多次使用left join連接),才能將match_info中的host_id和guest_id轉化為class_name。
3、操作:
select c.class_name as host,d.class_name as guest, m.match_time,m.match_result
from match_info as m left join class_info as c
on m.host_id=c.id
left join class_info as d on m.guest_id=d.id;
4、總結:
犯錯一:表的別名重復問題
【注意】在進行多次連接同一個表時,一定不能存在表的重名。解決方法為給重名的表設置不同的表名:例 table_a as t_a