[英]How to merge with two queries in MySql?
盡管我之前的帖子部分正確,但我創建了這篇帖子,但並沒有得到我想要的確切結果。
我無法得到正確的答案 我想根據主客場結果來查找其 team_id 的球隊的勝負平局。 我創建的查詢總是顯示主隊的勝負和平局,而不管 team_id 是什么。 如何正確查詢輸入team_id指定球隊的主客場勝負平局?
我的表格結構是;
球隊表字段:team_id,team_name 聯賽表字段:league_id,league_name 匹配表字段:match_id,match_date,home_team_id,a.team_id,home_score,away_score,league_id
而且我也無法合並這兩個查詢。 我認為如果兩個查詢都可以合並,它將給出我預期的結果。
錯誤的工作查詢是:
-- Arsenal's Home W,L and D results query
select t1.team_name hometeam, m.home_score, t2.team_name awayteam, m.away_score,
CASE WHEN m.home_score > m.away_score THEN 'W'
WHEN m.home_score < m.away_score THEN 'L'
WHEN m.home_score = m.away_score THEN 'D'
END AS results
from matches m
join teams t1 on m.home_team_id = t1.team_id
join teams t2 on m.away_team_id = t2.team_id
where m.home_team_id = '21' or m.away_team_id = 21;
結果:(客場勝利顯示為輸,客場輸球顯示為勝利)
家T | HS | 離開T | 作為 | 結果 |
---|---|---|---|---|
布倫特福德 | 2 | 兵工廠 | 0 | W |
兵工廠 | 0 | 切爾西 | 2 | 大號 |
曼徹斯特城 | 5 | 兵工廠 | 0 | W |
兵工廠 | 1 | 諾維奇城 | 0 | W |
伯恩利 | 0 | 兵工廠 | 1 | 大號 |
兵工廠 | 3 | 托特納姆熱刺足球俱樂部 | 1 | W |
布萊頓霍夫阿爾比恩 | 0 | 兵工廠 | 0 | D |
兵工廠 | 2 | 水晶皇宮 | 2 | D |
和
-- Arsenal's Away W,L and D results
select t1.team_name hometeam, m.home_score, t2.team_name awayteam, m.away_score,
CASE WHEN m.away_score > m.home_score THEN 'W'
WHEN m.away_score < m.home_score THEN 'L'
WHEN m.away_score = m.home_score THEN 'D'
END AS results
from matches m
join teams t1 on m.home_team_id = t1.team_id
join teams t2 on m.away_team_id = t2.team_id
where m.home_team_id = '21' or m.away_team_id = 21;
結果:(主場勝利顯示為輸,主場失利顯示為勝利)
家T | HS | 離開T | 作為 | 結果 |
---|---|---|---|---|
布倫特福德 | 2 | 兵工廠 | 0 | 大號 |
兵工廠 | 0 | 切爾西 | 2 | W |
曼徹斯特城 | 5 | 兵工廠 | 0 | 大號 |
兵工廠 | 1 | 諾維奇城 | 0 | 大號 |
伯恩利 | 0 | 兵工廠 | 1 | W |
兵工廠 | 3 | 托特納姆熱刺足球俱樂部 | 1 | 大號 |
布萊頓霍夫阿爾比恩 | 0 | 兵工廠 | 0 | D |
兵工廠 | 2 | 水晶皇宮 | 2 | D |
提前感謝那些願意提供幫助的人。
問候。
這是你想要的?
select t1.team_name hometeam, m.home_score, t2.team_name awayteam, m.away_score,
CASE WHEN (m.home_team_id = 21 and m.home_score > m.away_score) or (m.away_team_id = 21 and m.home_score < m.away_score) THEN 'W'
WHEN (m.home_team_id = 21 and m.home_score < m.away_score) or (m.away_team_id = 21 and m.home_score > m.away_score) THEN 'L'
WHEN m.home_score = m.away_score THEN 'D'
END AS results
from matches m
join teams t1 on m.home_team_id = t1.team_id
join teams t2 on m.away_team_id = t2.team_id
where m.home_team_id = 21 or m.away_team_id = 21;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.