使用来自一个SQL查询的数据来实现另一个SQL查询的结果

时间:2014-05-29 17:41:56

标签: php html mysql sql

我想要显示NBA赛季的轮数。我在mysql中有一个数据库,其中存储了所有轮次。有2个不同的表,不能加入。其中一个表包含CURRENT ROUND,它几乎就是现在发生的循环,另一个包含所有轮次。当用户选择他们想要看到的结果时,他们将点击选择列表并进入该轮。

我想要的是,我希望能够做到这一点,用户只能查看当前或过去的回合,因为查看未来结果是不可能的。由于它们都在不同的表格中,我想从查询中获取当前轮次

$curr = mysql_query("SELECT current
                    FROM seasons 
                    WHERE year='2014'");
$result = mysql_query($curr);

while($row = mysql_fetch_array($result)){

$sql = mysql_query("SELECT allrounds
                FROM fixtures
                WHERE allrounds<= '$row['current']'");}

并且有点使用它作为另一个查询的变量,这似乎不起作用。这是我的选择清单。

Select a round:
<?php
echo "<select name = 'rounds' id = 'rounds'>\n";
echo "<option value=>Select...</option>\n";
while ($data = mysql_fetch_array($sql, MYSQL_ASSOC))
{echo "<option value='{$data['allrounds']}'>{$data['allrounds']}</option>\n";}
echo "</select>\n";
?>

有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

使用子查询尝试此操作。

SELECT allrounds
                FROM fixtures
                WHERE allrounds in (SELECT current
                    FROM seasons 
                    WHERE year='2014')

根据你的帖子

SELECT allrounds
                FROM fixtures
                WHERE allrounds <= (SELECT current
                    FROM seasons 
                    WHERE year='2014' 
                    ORDER BY current LIMIT 1)

结尾见LIMIT 1;这是为了确保只有一个值被返回,因为您尝试使用<=进行比较

答案 1 :(得分:0)

我不知道PHP,但你似乎错误地混合了PHP和MySQL代码。 您可能对Subqueries感兴趣。请检查此问题:MySQL Nested Select Query?

希望我能帮到你。 :)