MySQL在第二个查询中使用第一个查询的结果

时间:2016-07-06 18:32:28

标签: php mysql

这可能吗?我有一个返回动态行数的MySQL查询。

我想要做的是使用返回行的结果作为另一个查询中的列名。

示例:

首次查询的结果: SeqID4901 SeqID4902 SeqID4903

正常的第二个查询:

mysql_select_db($database_Hp, $conn);
$query_Lookup_Hist = sprintf("SELECT * FROM Hist WHERE HeadID = %s", GetSQLValueString($colname_Hist, "text"));
$Lookup_Hist  = mysql_query($query_Lookup_Hist , $conn) or die(mysql_error());
$row_Lookup_Hist  = mysql_fetch_assoc($Lookup_Hist );

使用第一次查询的结果

mysql_select_db($database_Hp, $conn);
$query_Lookup_Hist = sprintf("SELECT SeqID4901, SeqID4902, SeqID4903 FROM Hist WHERE HeadID = %s", GetSQLValueString($colname_Hist, "text"));
$Lookup_Hist  = mysql_query($query_Lookup_Hist , $conn) or die(mysql_error());
$row_Lookup_Hist  = mysql_fetch_assoc($Lookup_Hist );

正如我所说,这是可能的,我将从哪里开始。

许多人提前为你的时间而努力。

1 个答案:

答案 0 :(得分:1)

如果您不想只使用一个查询进行此操作:

$columns = array();
$query = mysql_query("select column_with_column_names from your_table");
while($res = mysql_fetch_assoc($query))
    $columns [] = $res['model'];

$result  = mysql_query("SELECT ".implode(",",$columns)." FROM your_other_table");