【问题标题】:Problem using join and where sysdate clause at the same time in ORACLE SQL在 ORACLE SQL 中同时使用 join 和 where sysdate 子句的问题
【发布时间】:2020-05-10 16:35:10
【问题描述】:

我想获取未来的游戏列表,使用 join 并有一个过滤器“WHERE GAME_DATE > SYSDATE”

GAME_DATE,
ARENA,
HOME_TEAM_NAME,
AWAY_TEAM_NAME,

游戏桌:

GAME_DATE DATE
GAME_ID NUMBER
HOME VARCHAR
AWAY VARCHAR

团队表:

TEAM_ID NUMBER
NAME VARCHAR
CITY VARCHAR  <- TO BE "ARENA"

此代码正在运行,但不是预期的结果,因为 home 和 away 属性是 NUMBER,我想将这些更改为 VARCHAR 加入 TEAM 表:

select game_date, home, away 
from game 
where game_date > sysdate;

但同时使用 join 和 sysdate 的这段代码不起作用:

SELECT g.game_date, t1.city "ARENA",  t1.name "HOME", t2.name "AWAY"
from game g
join team t1 on g.home = t1.team_id 
join team t2 on g.away = t2.team_id;
where g.game_date > sysdate;

它返回“SQL 命令未正确结束”。哪一行错了?

【问题讨论】:

  • 可能在您的查询中删除此行末尾的分号:join team t2 on g.away = t2.team_id;

标签: sql oracle join where-clause sysdate


【解决方案1】:

从第 4 行删除分号:

SELECT g.game_date, t1.city "ARENA",  t1.name "HOME", t2.name "AWAY"
from game g
join team t1 on g.home = t1.team_id 
join team t2 on g.away = t2.team_id
where g.game_date > sysdate;

【讨论】:

  • 谢谢。真的很容易犯错。
猜你喜欢
  • 2017-12-21
  • 2021-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-12
  • 1970-01-01
  • 2014-03-29
  • 1970-01-01
相关资源
最近更新 更多