我对加入派生表的基本语法有疑问。
这是使用的基本语法吗:
select *
from table1 a
inner join (select * from table2) as T1
on 1.ID = T1.ID
那会奏效吗?
我对加入派生表的基本语法有疑问。
这是使用的基本语法吗:
select *
from table1 a
inner join (select * from table2) as T1
on 1.ID = T1.ID
那会奏效吗?
你问的是加入两个子查询?尝试:
select * from
(select * from table1) t1 inner join
(select * from table2) t2 on
t1.id = t2.id
在您发布的查询更改on 1.ID = T1.ID
为on a.ID = T1.ID
,它应该可以正常工作,但为什么您甚至需要它?您可以直接加入table1
而不需要像内联/派生表一样
select *
from table1 a
inner join
table2 T1
on a.ID = T1.ID
如果您尝试使用使用 定义的派生表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