1

大家。请帮我。现在我正在处理分页。我想根据 tblcategory.cat_id 每页显示 5 条记录。但我的查询字符串有问题..

  1. 表 tblcategory

    如果不存在则创建表tblcategory( cat_idint(11) NOT NULL AUTO_INCREMENT, cat_namechar(50) NOT NULL, PRIMARY KEY ( cat_id)) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11;

  2. 表 tbl 内容

    如果不存在则创建表tblcontent( con_idint(11) NOT NULL AUTO_INCREMENT, titlechar(100) NOT NULL, descriptiontext NOT NULL, date_posteddate NOT NULL, authorchar(50) NOT NULL, cat_idint(11) NOT NULL, PRIMARY KEY ( con_id), KEY cat_id( cat_id) ) ENGINE=InnoDB 默认字符集=latin1 AUTO_INCREMENT=78 ;

  3. 表 tblimage

    如果不存在则创建表tblimageimg_idint(11) NOT NULL AUTO_INCREMENT, con_idint(11) NOT NULL, img_namevarchar(250) NOT NULL, img_thumvarchar(250) NOT NULL, PRIMARY KEY ( img_id), KEY con_id( con_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”附近使用正确的语法

4

2 回答 2

1

试试这个

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条件,然后指定顺序

语法见这里

于 2013-03-19T04:07:23.323 回答
0

放错了WHERE位置 - 它需要在ORDER BY.

IE

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
于 2013-03-19T04:05:30.693 回答