在这种情况下运行查询的最佳方法是什么?

时间:2014-04-07 17:26:12

标签: mysql spreadsheet

我的情况是,我必须使用数据库中的信息基本填充电子表格。这个网站涉及跑步者和他们完成比赛所需的时间。在我的垂直列上,它列出了跑步者的名字,在水平上,它列出了比赛。获取一个种族的数据和输出很简单,但我遇到的问题是针对多个种族进行此操作并将其以电子表格格式呈现。

我的表格如下:

    runner   race number   time
    ----------------------------
    jack     1             2 hours
    jack     2             2.5 hours
    mike     1             1 hour
    mike     2             1.5 hours
    shelly   1             2.5 hours
    shelly   2             3 hours

我希望以下列方式在我的网站上展示

    Runner    Race Number 1    Race Number 2
    -----------------------------------------
    Jack        2 hours            2.5 hours      
    Mike        1 hour             1.5 hours
    Shelly      2.5 hours          3 hours

起初我以为只运行多个查询,每个种族都有一个查询,但由于我必须在上面的第二个表中提供它,所以它变得有点棘手。

1 个答案:

答案 0 :(得分:0)

您必须加入2个派生表,如下所示:

SELECT r1.name AS runner, 
race_number1 AS "Race Number 1", 
race_number2  AS "Race Number 2"
FROM 
(SELECT name, time AS race_number1 FROM races WHERE race_number=1) r1 
INNER JOIN 
(SELECT name, time AS race_number2 FROM races WHERE race_number=2) r2
ON r1.name=r2.name

这里是demo

您应该做的最重要的事情是将名称设置为UNIQUE,否则您应该为每个跑步者设置一个具有唯一ID的表运行器...