【发布时间】:2017-03-22 02:24:04
【问题描述】:
我确实搜索了 oracle sql 外连接以查看是否存在快照(就像我认为在 mysql 中你可以执行 where a *= b 我相信,这可以执行外连接)。我发现了一件事看起来很有希望,但没有奏效。我试图找到一个快捷方式,因为我永远记不住外连接语法。我必须一直查看它。以此为例:
SELECT
l.*,
r.*
FROM database.login l LEFT OUTER JOIN database.relation r
ON l.user_id = r.user_id
AND r.user_id IS NULL
r.user_id 的多个值如预期的那样为空。我尝试了我在某处读到的内容:
SELECT
l.*,
r.*
FROM database.login l, database.relation r
WHERE l.user_id = +r.user_id
但没有从 database.relation 中选择与 database.login 不匹配的 user_id 的行。
所以你必须输入整个语法吗?我试图在登录中获取一个条目,而不是相关的。
我想我可以使用如下内容:
u.user_id not in select user_id from database.relation
必要时
【问题讨论】:
-
第一个查询到底有什么问题?
-
依我的拙见,您应该花时间学习 ANSI 连接语法。这并不难:
select * from some_table <join type> some_other_table <on join condition(s)>。您只需要知道要使用哪种连接类型,这与您的连接条件相符
标签: sql oracle outer-join