2013-03-19 14 views
0

每個人。請幫幫我。現在我正在處理分頁..我想根據tblcategory.cat_id每頁顯示5條記錄。但我的查詢字符串有問題..使用限制和where子句進行分頁

  1. 表tblcategory

    CREATE TABLE IF NOT EXISTS tblcategorycat_id INT(11)NOT NULL AUTO_INCREMENT, cat_name CHAR(50)NOT NULL, PRIMARY KEY (cat_id) )ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 11;

  2. 表tblcontent

    CREATE TABLE IF NOT EXISTS tblcontentcon_id INT(11)NOT NULL AUTO_INCREMENT, title炭(100)NOT NULL, description文本NOT NULL, date_posted日期NOT NULL, author炭(50)NOT NULL, cat_id INT(11)NOT NULL, PRIMARY KEY(con_id) KEY cat_idcat_id) )ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 78;

  3. 表tblImage的

    CREATE TABLE IF NOT EXISTS tblimageimg_id INT(11)NOT NULL AUTO_INCREMENT, con_id INT(11)NOT NULL, img_name VARCHAR(250)NOT NULL, img_thum VARCHAR(主鍵(img_id), KEY con_idcon_id) )ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 9;

這是我的查詢字符串,所以我的sql語句有什麼問題。

SELECT * FROM tblcontent LEFT JOIN tblcategory 
    ON (tblcontent.cat_id = tblcategory.cat_id) 
    LEFT JOIN tblimage ON (tblimage.con_id = tblcontent.con_id) 
    ORDER BY tblcontent.date_posted DESC 
    LIMIT 0,5 WHERE tblcategory.cat_id=1 

結果是: 錯誤代碼:1064 您的SQL語法錯誤;請檢查與您的MySQL服務器版本對應的手冊,以便在第5行'WHERE tblcategory.cat_id = 1'處使用正確的語法。

回答

0

試試這個

SELECT * FROM tblcontent LEFT JOIN tblcategory 
    ON (tblcontent.cat_id = tblcategory.cat_id) 
    LEFT JOIN tblimage ON (tblimage.con_id = tblcontent.con_id) 
    WHERE tblcategory.cat_id=1 
    ORDER BY tblcontent.date_posted DESC 
    LIMIT 0,5 

首先,你需要指定WHERE條件,然後指定的順序

在這裏看到Syntax

0

WHERE錯位 - 它需要位於ORDER BY之前。

I.e.

SELECT * FROM tblcontent 
LEFT JOIN tblcategory ON (tblcontent.cat_id = tblcategory.cat_id) 
LEFT JOIN tblimage ON (tblimage.con_id = tblcontent.con_id) 
WHERE tblcategory.cat_id=1 
ORDER BY tblcontent.date_posted DESC 
LIMIT 0,5