优化SQL以查找体育(篮球)阵容

时间:2015-06-03 20:07:07

标签: mysql sql sql-server

我正在尝试设置一个SQL数据库来记录游戏中发生的3人阵容。我现在的结构是:

播放器

playerID playerName

系列

lineupID

Lineup_players

lineupID(外键) playerID(外键)

我想找一个快速的方法来检查一组特定的3名球员是否已经成为阵容的一部分。假设我想找到一个有玩家A,B,C的阵容,我能想到的解决方案是这样的:

SELECT t1.lineupID
FROM (SELECT lineupID FROM Lineup_players WHERE playerID=A) t1
INNER JOIN (SELECT lineupID FROM Lineup_players WHERE playerID=B) t2 ON t1.lineupID = t2.lineupID
INNER JOIN (SELECT lineupID FROM Lineup_players WHERE playerID=C) t3 ON t1.lineupID = t3.lineupID

我觉得这是一个笨拙的解决方案。使用相同的表是否有更快的查询,还是有更好的方法来存储数据?

另外,如果我的阵容中有A,B,C,D,E球员,那么在没有检查所有20种组合的情况下,有没有快速的方法可以找到所有3个这些球员的阵容?

1 个答案:

答案 0 :(得分:0)

也许你看起来像这样?

<script>
  function get_option()
  {
    var time_zone = document.getElementbyId("time_set");
    if (time_zone == "Server")
      time_zone = "UTC";
    if (time_zone == "Device")
      time_zone = @Model.timeZoneId;
    var time_to_disp = @WebApp.Utils.TimeHelper.GetDateTimeByZone(time_zone);
    document.getElementById("time_on_page") = "Current time (" + time_zone + "): " + time_to_disp;
  }
</script>

这将列出包含3个或更多列出的ID的阵容。