MySQL不同的查询错误

时间:2013-08-12 09:41:54

标签: php sql distinct

SELECT DISTINCT(reserve_dummy.isbn) as reserved_dummy.isbn,
       reserved_dummy.price,
       reserved_dummy.qty,
       reserved_dummy.date,
       reserved_dummy.total 
FROM reserved_dummy
  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   近   '.isbn,reserved_dummy.price,reserved_dummy.qty,reserved_dummy.date,reserved_dummy'   在第1行

SELECT DISTINCT(reserve_dummy.isbn) as reserved_dummy.isbn,
       reserved_dummy.price,
       reserved_dummy.qty,
       reserved_dummy.date,
       reserved_dummy.total 
FROM reserved_dummy

请帮助我在这里弄清楚我的错。提前谢谢

4 个答案:

答案 0 :(得分:0)

SELECT DISTINCT(isbn) AS isbn,
       price,qty,
       date,total 
FROM reserved_dummy

SQL DISTINCT子句的语法是:

SELECT DISTINCT columns FROM tables

别名

时,请勿使用.(点)运算符

答案 1 :(得分:0)

只是放弃了为表名

添加每个字段名称前缀的奇怪想法
SELECT DISTINCT(isbn) as isbn,price,qty,date,total FROM reserved_dummy

答案 2 :(得分:0)

使用SELECT DISTINCT(x.y) AS x.y ....语法时,错误是由表前缀引起的,应该是SELECT DISTINCT(x.y) AS y ....

拿出来,查询应该有效:

SELECT 
    DISTINCT(reserve_dummy.isbn) as isbn,
    reserved_dummy.price,
    reserved_dummy.qty,
    reserved_dummy.date,
    reserved_dummy.total 
FROM 
    reserved_dummy

答案 3 :(得分:0)

你不能做这样的查询。你可以做一个

select distinct isbn, price, qty, date, total from reserved_dummy

你将得到不同的记录。

但是,我不知道你想从这个查询得到什么。

在这种情况下,也许isbn是主键:

select `isbn`, `price`, `qty`, `date` from reserved_dummy

应该有用。

请注意字段名称周围的反引号。那是因为“date”是MySQL中的一个函数名,并且使用它作为fieldname而没有引号会失败。

如果碰巧有几条记录具有相同的isbn,并且您想从最新的记录中获取数据,则可以执行以下查询:

select `isbn`, `price`, `qty`, `date`
from reserved_dummy
where (`isbn`, `date`) in (
    select isbn, max(`date`) from reserved_dummy group by isbn
)

获得你想要的东西。