3

我对加入派生表的基本语法有疑问。

这是使用的基本语法吗:

select *
from table1 a

inner join (select * from table2) as T1

on 1.ID = T1.ID

那会奏效吗?

4

3 回答 3

10

你问的是加入两个子查询?尝试:

select * from
(select * from table1) t1 inner join
(select * from table2) t2 on
t1.id = t2.id
于 2014-10-31T20:20:22.233 回答
1

在您发布的查询更改on 1.ID = T1.IDon a.ID = T1.ID,它应该可以正常工作,但为什么您甚至需要它?您可以直接加入table1而不需要像内联/派生表一样

select *
from table1 a
inner join 
table2 T1
on a.ID = T1.ID
于 2014-10-31T21:01:08.117 回答
0

如果您尝试使用使用 定义的派生表VALUES,即绕过插入临时表的 1000 行限制(多行插入),这也很有用。确保在 VALUES 语句中指定变量/列的名称,即,(ids)在别名 ie 之后v

例子:

SELECT *
FROM (VALUES (1,'c1'),(2,'c2'),(3,'c3')) v (ids, textcol)
JOIN TABLE1 t1 on t1.ids = v.ids
于 2021-05-14T16:02:44.260 回答