小编VDG*_*VDG的帖子

JOIN 特定语法的 ON 子句?

我对 JOIN 操作的语法有点好奇,特别是我们设置条件的 ON 子句。假设我们正在对现有表和我们刚刚创建为 JOIN 中的子查询的表执行连接,例如:

SELECT DISTINCT ssn, job, identifier, startdate, enddate, salary, ceasing
FROM oldcontracts
JOIN (SELECT DISTINCT name, identifier FROM jobs)
ON oldcontracts.job = jobs.name
;
Run Code Online (Sandbox Code Playgroud)

这里的问题是,我们将如何设置一个有效的 ON 条件?我这样说是因为语法具有以下形式:

table1.column <condition> table2.column
Run Code Online (Sandbox Code Playgroud)

显然,SQL 2005 对我们从何处获取这些列非常严格。这意味着我在 jobs.name 上收到一个错误,说它不是一个有效的标识符。我假设 SQL 抛出这个错误是因为作业不是在操作中加入的表。

我知道解决这个问题的方法是简单地将作业设置为 table2 以在 JOIN 中使用,并根据需要调整 SELECT,然后一切都会工作,但我很想知道是否有办法解决一列一个子查询,假设该特定子查询是在 JOIN 操作中用作 table2 的那个?

sql-server-2005 join sql-server

2
推荐指数
1
解决办法
35
查看次数

标签 统计

join ×1

sql-server ×1

sql-server-2005 ×1