2012-05-12 191 views
0

我想两个表连接有内混合在一起,并限制与ROW_NUMBER每页显示结果的数量:ROW_NUMBER()与INNER JOIN SQL Server 2008的分页

$tsql = "SELECT * 
FROM (SELECT ROW_NUMBER() OVER(ORDER BY productID) AS 
rownum, * FROM products INNER JOIN product_catalogue ON products.catalogueID = product_catalogue.catalogueID 
     WHERE category1 = '1') AS products1 
WHERE rownum >= 0 AND rownum <= 6"; 

    $stmt = sqlsrv_query($conn,$tsql); 

while($row = sqlsrv_fetch_array($stmt)){ 
     echo $row['productID']. "<br/>"; 
     echo $row['product_name']. "<br/>"; 

    } 

我得到“sqlsrv_fetch_array()预计,参数1是资源”的错误,我知道它有什么用INNER JOIN跟我做,因为如果我运行查询没有它,我得到显示我的网页上的结果:

$tsql = "SELECT * 
FROM (SELECT ROW_NUMBER() OVER(ORDER BY productID) AS 
rownum, * FROM products) AS products1 
WHERE rownum >= 0 AND rownum <= 6"; 

回答

0

我猜你在说什么MS SQL服务器。 我不要在PHP代码,但你应该先检查下列事项:

  1. 请问您查询作品使用SQL只(MS SQL在SSMS)
  2. 你具体列名,也许你有双重命名列!例如两列名为“ID” 然后你你2次在你的结果相同的分析,没有问题的SQL, ,但对于大多数数据库连接器驱动程序的问题
  3. 如果一切都不工作,做一个查询(CREATE QUERY qry_yourQuery AS ) 使用SELECT * FROM qry_yourQuery然后