【发布时间】:2019-08-11 15:54:38
【问题描述】:
这可能吗?目前我正在尝试通过我的数据库运行这一系列命令。但是,添加礼物的最后一行存在问题。这是因为该表没有设置主键。我需要为它设置一个主键,还是有其他方法可以解决这个问题?
SELECT b.title, p.name, m.gift
FROM books b
JOIN publisher p USING (pubid)
JOIN promotion m USING (gift);
我得到的错误代码是。
SQL 错误:ORA-00904:“来自$_subquery$_003”。“GIFT”:无效标识符 00904。00000 - “%s:无效标识符”
【问题讨论】:
-
我不认为
using依赖于主键。它应该只是在前面的表格中查找列名。 -
将 SELECT b.title、p.name、m.Gift 替换为 SELECT b.title、p.name、Gift - Oracle 不喜欢在选择中限定使用字段。跨度>
-
简单的
ON有什么问题? -
请在您的帖子中包含错误消息以及 DDL 以重现问题。看起来它在告诉您
books或publisher没有gift列。 -
PK 和其他约束不需要加入。为什么你认为他们是?任何 2 个表都可以在任何条件下连接。了解 USING 的含义:
r JOIN s USING (c,...)是r JOIN s ON r.c=s.c AND ....。你到底想问什么?请通过编辑而不是 cmets 进行澄清。