5支球队主客场的比赛,用笛卡尔积可以得到。一共有20场比赛。
NAME                                     NAME
---------------------------------------- ----------------------------------------
RQ                                       RL
RQ                                       SG
RQ                                       WH
RQ                                       UP
RL                                       RQ
RL                                       SG
RL                                       WH
RL                                       UP
SG                                       RQ
SG                                       RL
SG                                       WH
SG                                       UP
WH                                       RQ
WH                                       RL
WH                                       SG
WH                                       UP
UP                                       RQ
UP                                       RL
UP                                       SG
UP                                       WH现在我想把这20场比赛分成10周进行,每周2场比赛,这样每周有4支对参加,1支对轮空。
要得到这样效果的赛程表,类似:
(WEEK 1)
RQ                                       RL
SG                                       WH   (UP轮空)
(WEEK 2)
RL                                       SG
WH                                       UP   (RQ轮空)
(WEEK 3)
RQ                                       SG
UP                                       WH   (RL轮空)
(WEEK 4)
RQ                                       WH
RL                                       UP   (SG轮空)
(WEEK 5)
RQ                                       UP 
SG                                       RL   (WH轮空)(WEEK 6) 
RL                                       RQ 
WH                                       SG   (UP轮空)
(WEEK 7)
UP                                       SG 
RL                                       WH   (RQ轮空)把原始得出的表列成这样要求的对阵表,请问怎么实现啊,SQL。
真的很感谢!!!!

解决方案 »

  1.   

    仅用SQL语句难以实现。需要用到程序。
      

  2.   


    我现在手工列出的赛程表如下:
    HOME                                    awayRQ                                       RL 
    SG                                       WH    UP轮空RL                                       SG 
    WH                                       UP    RQ轮空RQ                                       SG 
    UP                                       WH    RL轮空RQ                                       WH   
    RL                                       UP    SG轮空RQ                                       UP   
    SG                                       RL    WH轮空WH                                       SG 
    RL                                       RQ    UP轮空UP                                       SG 
    WH                                       RL    RQ轮空SG                                       UP                                                                                                                                                                                                               
    WH                                       RQ   RL轮空UP                                       RQ  
    RL                                       WH  SG轮空
    SG                                       RQ   
    UP                                       RL  WH轮空
    比如我想取UP轮空的赛程,应该是
    home                                     away
     
    RQ                                       RL 
    SG                                       WH  WH                                       SG 
    RL                                       RQ 但我写SELECT * FROM TABLE WHERE NOT HOME=‘up’ or AWAY='up' ;
    得不到这样的效果
    请问怎么写,才能读出HOME有不同值组成的,和AWAY也有不同值组成的,也就是SELECT 出的VALUE在某一列里面不能有相同情况的写法?
    谢谢!!!
      

  3.   

    mysql> select * from t;
    +------+
    | tid  |
    +------+
    | RQ   |
    | RL   |
    | SG   |
    | WH   |
    | UP   |
    |      |
    +------+
    6 rows in set (0.00 sec)mysql> select a.tid as t1,b.tid as t2 from t a,t b where a.tid>b.tid ;
    +------+------+
    | t1   | t2   |
    +------+------+
    | SG   | RQ   |
    | WH   | RQ   |
    | UP   | RQ   |
    | RQ   | RL   |
    | SG   | RL   |
    | WH   | RL   |
    | UP   | RL   |
    | WH   | SG   |
    | UP   | SG   |
    | WH   | UP   |
    | RQ   |      |
    | RL   |      |
    | SG   |      |
    | WH   |      |
    | UP   |      |
    +------+------+
    15 rows in set (0.00 sec)