我很惭愧地说,我的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