SQL搜索查询返回';FROM子句'中的语法错误;

SQL搜索查询返回';FROM子句'中的语法错误;,sql,Sql,我是一个初学者,正在努力学习SQL。在我做的一个练习中,我输入了以下查询,得到了一个错误“FROM子句中的语法错误” select orders.customerid, customers.customername, count(orders.customerid) from orders join customers on customers.customerid = orders.customerid group by orders.customerid order by count(ord

我是一个初学者,正在努力学习SQL。在我做的一个练习中,我输入了以下查询,得到了一个错误“FROM子句中的语法错误”

select orders.customerid, customers.customername, count(orders.customerid)
from orders
join customers on customers.customerid = orders.customerid
group by orders.customerid
order by count(orders.customerid)

在W3SQL thingy中,需要指定与
join
关键字一起使用的联接类型(内部、左侧、右侧)

在customers.customerid=orders.customerid上使用
join customers,会给出从FROM子句中得到的语法错误

将联接更改为
内部联接
修复了该错误,但还有另一个问题,即group by语句中缺少的列:您试图执行的查询未将指定的表达式“customername”作为聚合函数的一部分

修复后,查询将如下所示:

select orders.customerid, customers.customername, count(orders.customerid)
from orders
inner join customers on customers.customerid = orders.customerid
group by orders.customerid, customers.customername
order by count(orders.customerid);
但是,如果要返回所有客户,而不管客户是否有订单,则应将查询更改为使用左联接:

select orders.customerid, customers.customername, count(orders.customerid)
from customers
left join orders on customers.customerid = orders.customerid
group by orders.customerid, customers.customername
order by count(orders.customerid);
另一方面,这可能是开始使用别名的好时机:

select o.customerid, c.customername, count(o.customerid) as count_of_orders
from customers as c
left join orders as o on c.customerid = o.customerid
group by o.customerid, c.customername
order by count(o.customerid);

查看查询缩短了多少?:)

哪种关系数据库管理系统?假设mysql
mysql
,我认为发布的sql没有问题--。。。如果您正在使用另一个数据库,那么您需要在
group by
子句中包含
customername
(但我认为这会收到不同的错误)。group by orders.customerid,customers.customername需要
group by orders.customerid,customers.customername
(在大学里,传递依赖性是受尊重的,而在大学毕业生中则不受尊重)我在这个网站上:你为我发布的
sql
在那个网站上运行…谢谢你,谢谢你!我现在可以继续学习了。非常感谢!!回答很好--在3个浏览器中进行了测试,最后在Firefox中得到了相同的错误。这似乎解决了问题。到底为什么浏览器会控制引擎+1@sgeddes呵呵,,我不知道;我猜这是一种向所有人提供db的廉价方式;)顺便问一下:什么是
浏览器
,为什么它与SQL语法(或语义)相关?@wildplasser W3Schools似乎使用基于浏览器的数据库,所以我猜浏览器可能决定标准一致性和方言的级别?只是猜测而已,我还没有调查过。这在这个特定的案例中是相关的,但当然不是这样。(无论如何,rdbs引擎的数量超过了rdbs引擎的数量)