我想了解SQL連接並試圖將它們應用於我正在構建的應用程序。我正在查詢根據特定遊戲ID在計劃中查找「遊戲記錄」。但是在這個遊戲紀錄上;爲「h_team」和「v_team」;只有球隊的ID在比賽記錄上。所以我想要做的就是加入「團隊」表並查找「h_team」和「v_team」這兩個不同的team_name。因爲只有分區ID存儲在遊戲記錄中,所以我也使用加入來拉入「分區名稱」。我已經得到了這一切工作正常;除了我不知道如何分別獲取h_team和v_team的「team_name」的結果。基本上每個人的關鍵只是「team_name」;我會在我的代碼粘貼,然後進一步解釋:幫助MySQL左外連接和區分來自同一個鍵的查詢結果
$array_game_id6=32;
$sql = "SELECT * FROM playoff_schedule LEFT OUTER JOIN teams on playoff_schedule.h_team = teams.team_id || playoff_schedule.v_team = teams.team_id LEFT OUTER JOIN playoff_divisions on playoff_schedule.po_div_id = playoff_divisions.po_div_id WHERE tom_game_id=$array_game_id6";
foreach ($dbh->query($sql) as $resultsg39)
{
$h_team=$resultsg39[h_team];
$v_team=$resultsg39[v_team];
$po_div_id=$resultsg39[po_div_id];
$round=$resultsg39[round];
$game_id=$resultsg39[game_id];
$date=$resultsg39[date];
$timestamp=$resultsg39[timestamp];
$h_score=$resultsg39[h_score];
$v_score=$resultsg39[v_score];
$tom_game_id=$resultsg39[tom_game_id];
$h_name=$resultsg39[team_name];
$div_name=$resultsg39[playoff_name];
}
的問題是當我試圖得到查詢的結果,他們都儲存在不同變量...
最後兩個「 $ h_name「和」$ div_name「正在從JOIN中拉出所有在前的遊戲記錄本身...
我想要做的是將」v_team「和」h_team「的名稱分別存儲在各自的變量$ h_name和$ v_name;
我有它存儲$ h_name沒問題;但我不知道如何使它同時存儲$ h_name和$ v_name,因爲它們都是來自「teams」表的列「team_name」中的值。所以我只是需要以某種方式使它,所以當我得到我的結果,它可以告訴兩個不同的「team_names」之間的差異,我可以將它們存儲在兩個不同的變量...
如果這不明確,請讓我知道。
謝謝!
***** UPDATE 10:49 pm EST 2/5/2015 已經取得了一些進展,但我的查詢不工作;我認爲這是一個與別名有關的問題,這是不對的;這裏是我的非工作的查詢,因爲它是現在:
$sth = $dbh->prepare("SELECT home_team.team_name as home_team_name, visiting_team.team_name as visiting_team_name,
h_team, v_team, po_div_id, round, game_id, date, timestamp, h_score, v_score, tom_game_id, playoff_name FROM playoff_schedule
LEFT OUTER JOIN teams as home_team on playoff_schedule.h_team = teams.team_id
LEFT OUTER JOIN teams as visiting_team on playoff_schedule.v_team = teams.team_id
LEFT OUTER JOIN playoff_divisions on playoff_schedule.po_div_id = playoff_divisions.po_div_id
WHERE tom_game_id=$array_game_id6");
$sth->execute();
$article_list = $sth->fetchAll(PDO::FETCH_ASSOC);
foreach ($article_list as $row => $link) {
$h_team=$link['h_team'];
$v_team=$link['v_team'];
$po_div_id=$link['po_div_id'];
$round=$link['round'];
}
如果任何人都可以與我的新的查詢發現了一個問題,我將不勝感激!
這仍然是有問題的ID,他沒有別名的列或使用數字索引提取模式,因爲這些鍵將在PHP端彼此覆蓋。需要像'select home_team.team_name as home_team_name,visiting_team.team_name as visiting_team_name' – prodigitalson 2015-02-05 23:32:37
@prodigitalson - 我已經更新了答案。這不是完整的查詢無論如何 – 2015-02-05 23:34:27
謝謝你們,我正在尋找這個,並渴望嘗試這個,想知道這個:我有「選擇*」之前,所以我可以只將所有的結果轉儲到變量;但如果我以這種方式編寫查詢,這是否意味着我必須單獨選擇每個關鍵字(只需在以逗號分隔列出的關鍵字之後添加它們),如下所示:select home_team.team_name as home_team_name,visit_team.team_name as visiting_team_name,h_team, v_team,h_score,v_score ...。等等? – 2015-02-06 00:06:01