我很慚愧地說,我的SQL體驗很少使用,當我必須構造一個稍微複雜的查詢時它會崩潰,所以我會欣賞SQL專家意見。SQL - 多個連接到一個表 - 兩個鍵的兩個值
基本上我有兩個表,類似於以下
games(game_id, game_date, player_a_id, player_a_score, player_b_id, player_b_score)
players(player_id, player_name)
我希望構造,在相同的結果集返回查詢,球員的名字和分數IE瀏覽器。
game_id,GAME_DATE,player_a_name,player_a_score,player_b_name,player_b_score
這裏是我的,我想幼稚的方法來優化
select games.game_id, games.game_date, (select player_name from players where player_id = games.player_a_id), games.player_a_score, (select player_name from players where player_id = games.player_b_id), games.player_b_score)
誰能告訴我接近這一目標的最佳方式是什麼?
謝謝!
你能解釋一下爲什麼內部連接將更有效率比左加入? – adam 2010-04-22 13:27:00
當player_a_id爲null或player_b_id爲null時,情況如何?本聲明不選擇這些遊戲。 – mphair 2010-07-06 20:44:57
我想我假設player_a_id和player_b_id不能爲null。如果其中一個爲空,那麼你爲什麼會得到一個帶有分數的遊戲記錄? – 2010-07-07 01:32:22