程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql連接查詢經典小例題,

mysql連接查詢經典小例題,

編輯:MySQL綜合教程

mysql連接查詢經典小例題,


mysql連接查詢:

Mysql連接查詢支持多表連接

對同一張表可以重復連接多次(別名在多次連接同一張表時很重要)

例題1:

下面有2張表

teams表

 

 

比賽結果表:result

 

 

問題:

得出一張表:

主隊,客隊,比賽成績,比賽時間

方法一:(子查詢和連接查詢混合)

  step1:

select result.id, t_name as h_name,match_time,result from teams  join result on teams.t_id=result.h_id

step2:

select result.id ,t_name as g_name from teams  join result on teams.t_id=result.g_id

得到

step3:根據比賽的id 相等連接以上兩表即可

復制代碼
select t1.id,h_name,g_name,result,match_time from
(select result.id, t_name as h_name,match_time,result from teams  join result on teams.t_id=result.h_id) as t1
 join
 (select result.id ,t_name as g_name from teams  join result on teams.t_id=result.g_id) as t2
 on t1.id=t2.id;
復制代碼

即可得到

結果是出來了,有點繁瑣

方法二:多次連接查詢

select result.id,t1.t_name as h_name ,t2.t_name as g_name ,result,match_time from result 
join 
teams as t1 on result.h_id=t1.t_id 
join 
teams as t2 on t2.t_id=result.g_id;

即可得到:

Teams表要連接2次所以要有別名

 

例題2:

現有下表 subject

 

求這樣一個表

父欄目名 ,子欄目名稱

連接查詢

自己連接自己更需要別名了

 

select t1.name as p_name,t2.name as son_name from subject as t1 join subject as t2 on t1.id=t2.pid;

 

即可得到

 

 

 

為方便練習,或得建表和數據填充sql請點擊獲取練習sql

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved