【问题标题】:MySQL Distinct Query ErrorMySQL 不同的查询错误
【发布时间】:2013-08-12 09:41:53
【问题描述】:
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

请帮我找出我的错误。提前谢谢

【问题讨论】:

  • 不要将点 . 用于没有反引号的别名。

标签: php sql distinct


【解决方案1】:

放弃在每个字段名前加上表名的奇怪想法

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

【讨论】:

    【解决方案2】:

    错误是使用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】:
      SELECT DISTINCT(isbn) AS isbn,
             price,qty,
             date,total 
      FROM reserved_dummy
      

      SQL DISTINCT 子句的语法是:

      SELECT DISTINCT columns FROM tables
      

      别名时不要使用.(点)运算符

      【讨论】:

        【解决方案4】:

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

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

        你会得到不同的记录。

        但是,我看不出你想从这个查询中得到什么。

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

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

        应该可以。

        注意字段名周围的反引号。那是因为“日期”是 MySQL 中的一个函数名,使用它作为不带引号的字段名会失败。

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

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

        得到你正在寻找的东西。

        【讨论】:

          猜你喜欢
          • 2011-11-13
          • 1970-01-01
          • 1970-01-01
          • 2012-11-23
          • 1970-01-01
          • 2016-03-29
          • 2014-03-06
          • 2012-05-27
          • 1970-01-01
          相关资源
          最近更新 更多