日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 返回多行数据_mysql – 如何连接多个表,包括查找表和返回行中的数据

發(fā)布時間:2023/12/2 数据库 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 返回多行数据_mysql – 如何连接多个表,包括查找表和返回行中的数据 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我正在嘗試顯示一些簡單的計算機游戲結(jié)果,并且可以輕松地在我的代碼中逐行迭代結(jié)果.我想要它,以便每個游戲的所有相關(guān)數(shù)據(jù)都在每個記錄中,所以我可以在一行輸出所有數(shù)據(jù),例如:

> A隊(得分45)對陣B隊(得分55),比賽持續(xù)時間:5分鐘

> C隊(得分60)對陣D隊(得分65),比賽持續(xù)時間:4.3分鐘

因此,對于一個游戲,有兩個團隊相互比賽,每個團隊在游戲結(jié)束時都得到一個分數(shù).基本上,每個游戲最終在games_teams表中有兩行.

這是我的架構(gòu):

這是我的表格數(shù)據(jù):

這是我想要實現(xiàn)的輸出,所以我可以輕松地遍歷結(jié)果并在頁面上輸出它們:

我設(shè)法通過一些可怕的SQL和許多子查詢來實現(xiàn)這一點:

SELECT games.game_id, game_name, game_duration,

(SELECT team_id FROM games_teams WHERE games.game_id = games_teams.game_id LIMIT 0, 1) AS team_id_a,

(SELECT team_id FROM games_teams WHERE games.game_id = games_teams.game_id LIMIT 1, 1) AS team_id_b,

(SELECT teams.team_name FROM games_teams INNER JOIN teams ON games_teams.team_id = teams.team_id WHERE games.game_id = game_id LIMIT 0, 1) AS team_name_a,

(SELECT teams.team_name FROM games_teams INNER JOIN teams ON games_teams.team_id = teams.team_id WHERE games.game_id = game_id LIMIT 1, 1) AS team_name_b,

(SELECT team_score FROM games_teams WHERE games.game_id = games_teams.game_id LIMIT 0, 1) AS team_score_a,

(SELECT team_score FROM games_teams WHERE games.game_id = games_teams.game_id LIMIT 1, 1) AS team_score_b

FROM games

這種方法的問題是它會很慢而且不能擴展.我還需要從games_teams表中提取其他游戲統(tǒng)計數(shù)據(jù),以便更多的子查詢.

我嘗試的另一種方法是:

我通過以下SQL實現(xiàn)了這一點:

SELECT games.game_id, game_name, game_duration, teams.team_id, team_name, team_score

FROM games

INNER JOIN games_teams ON games.game_id = games_teams.game_id

INNER JOIN teams ON games_teams.team_id = teams.team_id

現(xiàn)在,由于每個游戲的相關(guān)數(shù)據(jù)在兩個不同的記錄中,因此在代碼中這種方式將更難以預(yù)測.我必須構(gòu)建行的第一部分,然后進入下一個循環(huán)迭代并打印下一部分.然后在下一場比賽中重新開始,我試圖在一行上顯示所有信息,如:

A隊(得分45)對陣B隊(得分55),比賽持續(xù)時間:5分鐘

所以這就是為什么我認為如果它只是在一條記錄上會更容易.有沒有辦法很好地完成這個,所以如果我需要在games_teams表中有更多的列,它也可以擴展嗎?

任何幫助非常感謝,謝謝!

總結(jié)

以上是生活随笔為你收集整理的mysql 返回多行数据_mysql – 如何连接多个表,包括查找表和返回行中的数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。