使用distinct时MySQL错误代码为1064



我刚开始研究MySQL,遇到错误1064。这是一个基本而简短的片段。请帮忙,我已经在谷歌上搜索了大约一个小时了。我是万不得已才来找你的。

select  distinct(b.publisher), c.name
from  customer c, orders o, book b
where c.name = 'Park' and
c.custid = o.custid and b.bookid = o.bookid;

我的问题是,虽然上面的代码有效,但如果我把c.name放在distinct(b.publisher(前面,我会得到1064。如有任何帮助,我们将不胜感激。非常感谢。

DISTINCT的目的是消除双行,这意味着所有返回列中的数据完全相同。

如果SELECT子句中有多列,则不能只在一列上有DISTINCT。这就是你的错误1064 的原因

因此,你应该做

select  distinct b.publisher, c.name

select  distinct b.publisher

与完全相同

select  distinct(b.publisher)

最新更新