我有以下问题。我有一个巨大的数据库和一个长查询。为了加快DB请求的速度,我使用了一个临时表,它在Server Managment Studio上运行得很好。现在我想把这个查询放在我的php代码中,但它不起作用。
代码看起来像这个
示例:
$sql="
/*First Select and creating the tmp table:*/
SELECT data, data2, data3 INTO #tmp
FROM dbo.data
INNER JOIN ...
WHERE ... ;
/*Second Select wich is the main select:*/
SELECT data, data2, data3
FROM #tmp tmp
INNER JOIN otherTableOnServer
WHERE ....
UNION
SELECT data, data2, data3
FROM #tmp tmp
INNER JOIN otherTableOnServer
INNER JOIN otherTableOnServer2
LEFT OUTER JOIN otherTableOnServer3
....
";
$result=sqlsrv_query($conn2,$sql);
$content=array();
while($row=sqlsrv_fetch_array($result,SQLSRV_FETCH_ASSOC)){
$content[]=$row;
}
等等
注意:php代码运行良好,只有当我在代码中使用查询时,它才不起作用。没有错误消息,创建的页面通过,但没有查询结果。
我使用SQL Server 2008 R2和当前版本的PHP。
单个#表示一个本地临时表,该表只能从创建它的会话中访问。
附加##而不是#,使临时表成为全局的,并且可以从创建它的会话外部访问。