我参与了一个关于国际象棋联盟的项目。我有一张桌子(round_id,home_club,away_club,home_results,away_results)。我希望产生18轮的随机比赛(联赛由10个俱乐部组成),所以在home_club和away_club我们有一个来自另一桌的club_id,但不是每轮都重复。
答案 0 :(得分:0)
我们的数据库中有clubs
列的表ID
,其中包含标识符(例如,从1到10)。然后使用以下内容:
SELECT home.ID, away.ID
FROM clubs home, clubs away
WHERE home.ID <> away.ID
ORDER BY RAND()
LIMIT 18;
SELECT home.ID, away.ID FROM clubs home, clubs away
创建标识符的所有组合。 WHERE
子句阻止结果中home.ID
和away.ID
值的相等性。 ORDER BY RAND()
以随机顺序返回行。最后,我们只获得前18行
因此,将返回俱乐部的18个随机组合标识符。查询结果可以是inserted到锦标赛表格的home_club
和away_club
列。