如何在后续查询中使用SQL查询的结果?

时间:2013-02-26 22:41:57

标签: php mysql

我想在后续查询的where语句中使用查询的结果集。 遇到问题,因为第一个查询返回多个结果,我不知道如何将这些转换为以逗号分隔的字符串,以便在'IN' ()语句中使用。

$Result1 = mysql_query ("
select id from Table1
where
upper('$Input') = Employee_number   
")
or die(mysql_error());

$Result2 = mysql_query ("

Select * from table2 where ID in ($Result1)")

2 个答案:

答案 0 :(得分:3)

您可以将它组合成一个MySQL语句,如下所示:

SELECT * FROM Table2 WHERE id IN
(SELECT id FROM Table1 where upper('$Input') = Employee_number);

但如果您真的想在问题中这样做,您可能必须查找如何使用mysql_query的结果,只需在函数参考中查找即可。

答案 1 :(得分:2)

$query1 = mysql_query("
    select id from Table1 
    where upper('$Input') = Employee_number
") or die(mysql_error());

$ids = array();
while($Result1 = mysql_fetch_array($query1))
{
    $ids[] = $Result1['id'];
}

if(sizeof($ids))
{
    $n_ids = implode(',', $ids);

    $query2 = mysql_query("
        select * from Table2 
        where ID IN (" . $n_ids . ")
    ") or die(mysql_error());
}