处理此查询时,我不断收到错误消息。我认为最接近的结果仍然返回 ORA-00933:SQL 命令未正确结束
I keep getting errors when working on this query. The closest I think I got, still returned ORA-00933: SQL command not properly ended
我正在学习 SQL 并且无法弄清楚我的代码中做错了什么。
Select robot, city, country, count(sponsor.sponsor)
From robot join sponsor on robot.robotid = sponsor.robotid
Group by robotid
Where country not in ('United States');
我应该找到所有不是来自美国的机器人以及他们有多少赞助商。我已经弄清楚如何只从机器人 table 中获取国际机器人以及每个 robotID 在赞助商 table 中拥有的赞助商总数,但无法弄清楚如何加入它们。如果它有助于两个 tables 的 pk 是 robotID,但不应在查询中返回该值。
看看这个。
Select robot, city, country, count(sponsor.sponsor)
From robot join sponsor on robot.robotid = sponsor.robotid
Where country not in ('United States')
Group by robotid;
查询存在多个问题。三个很明显:
select
列与 group by
列不兼容。
where
子句放错地方了。
robotid
有歧义
可以猜到你打算:
Select r.robot, city, country, count(*)
From robot r join
sponsor s
on r.robotid = s.robotid
where country not in ('United States')
group by r.robot, city, country;
这只是一个猜测。它应该可以解决语法问题,但它可能不是您想要的。为什么不?您没有解释您的问题,没有提供示例数据,也没有期望的结果。
我正在学习 SQL 并且无法弄清楚我的代码中做错了什么。
Select robot, city, country, count(sponsor.sponsor)
From robot join sponsor on robot.robotid = sponsor.robotid
Group by robotid
Where country not in ('United States');
我应该找到所有不是来自美国的机器人以及他们有多少赞助商。我已经弄清楚如何只从机器人 table 中获取国际机器人以及每个 robotID 在赞助商 table 中拥有的赞助商总数,但无法弄清楚如何加入它们。如果它有助于两个 tables 的 pk 是 robotID,但不应在查询中返回该值。
看看这个。
Select robot, city, country, count(sponsor.sponsor)
From robot join sponsor on robot.robotid = sponsor.robotid
Where country not in ('United States')
Group by robotid;
查询存在多个问题。三个很明显:
select
列与group by
列不兼容。where
子句放错地方了。robotid
有歧义
可以猜到你打算:
Select r.robot, city, country, count(*)
From robot r join
sponsor s
on r.robotid = s.robotid
where country not in ('United States')
group by r.robot, city, country;
这只是一个猜测。它应该可以解决语法问题,但它可能不是您想要的。为什么不?您没有解释您的问题,没有提供示例数据,也没有期望的结果。