我刚开始研究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)