sql - 错误:“。”处或附近的语法错误 第 4 行:在 like.takerId = frame.likeId 上;
问题描述
我有一张桌子,名字是like
. 但是每当我必须从中选择数据时,我都会收到此错误,我想通了public.like
..但是当我尝试加入两个表时
SELECT *
FROM frame
INNER JOIN public.like
ON like.takerId = frame.likeId;
我得到这个错误
ERROR: syntax error at or near "."
LINE 4: ON like.takerId = frame.likeId;
我也使用公共前缀,但它抛出
ERROR: column like.takerid does not exist
LINE 4: ON public.like.takerId = frame.likeId;
^
HINT: Perhaps you meant to reference the column "like.takerId".
即使它在说column like.takerid does not exist
,那为什么它给我HINT: Perhaps you meant to reference the column "like.takerId".
我不知道,我认为这是like
表名的问题,like
是 sql 语法,它假设like
和 sql 语法并抛出错误。我应该更改我的表名吗?或者有什么方法可以让 sql 区分大小写,或者我如何告诉 sql 忽略like
。public.like
不适用于加入表。
解决方案
作为like
保留关键字,您需要为它的每次出现使用双引号(除非它以您发现的模式名称为前缀)
SELECT *
FROM frame
JOIN public.like ON "like".takerId = frame.likeId;
或者
SELECT *
FROM frame
JOIN "like" ON "like".takerId = frame.likeId;
或使用别名
SELECT *
FROM frame f
JOIN "like" l ON l.takerId = f.likeId;
但从长远来看,您应该为不需要引用的表找到一个不同的名称。
推荐阅读
- java - 将每个 ID 的数据从 firebase 读取到微调器中
- angular - 错误 TS2300:将我的代码移动到 Angular CLI 后标识符重复
- ios - 在 swift 中使用 Alamofire 的 Json 请求失败
- laravel - 如何在不需要使用 Laravel 的情况下传递方法,尝试获取非对象的属性“id”
- c# - 在 c# (^) 符号中使用 Excel 公式
- command-line-interface - 角度飞镖的命令行
- docker - 在 docker run 命令中拉取访问被拒绝
- amazon-web-services - 客户端请求正文被缓冲到一个临时文件
- r - 使用 data.table 的 I 中的反引号引用的列名子集时的奇怪行为
- java - 无法在 Eclipse Oxygen 3.3 的 POM.xml 的依赖项选项卡中找到存储库