1

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)")
4

2 に答える 2

3

これを次のような単一のMySQLステートメントに組み合わせることができます。

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

しかし、あなたが本当にあなたの質問のようにそれをしたいのなら、あなたはおそらくからの結果をどのように扱うかを調べなければならないでしょうmysql_query、ただそれを関数参照で調べてください。

于 2013-02-26T22:45:08.367 に答える
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());
}
于 2013-02-26T23:07:52.953 に答える