我对加入派生表的基本语法有疑问。
这是使用的基本语法:
select *
from table1 a
inner join (select * from table2) as T1
on 1.ID = T1.ID
这会起作用吗?
答案 0 :(得分:7)
你问的是加入两个子查询? 尝试:
select * from
(select * from table1) t1 inner join
(select * from table2) t2 on
t1.id = t2.id
答案 1 :(得分:0)
在您发布的查询中,将on 1.ID = T1.ID
更改为on a.ID = T1.ID
,它应该可以正常运行,但为什么还需要呢?您可以直接加入table1
,不需要内联/派生表,如
select *
from table1 a
inner join
table2 T1
on a.ID = T1.ID
答案 2 :(得分:0)
如果您尝试使用使用 VALUES
定义的派生表,即绕过临时表 (multiple row insert) 插入的 1000 行限制,也很有用。确保在 VALUES 语句中指定变量/列的名称,即 (ids)
,在别名之后,即 v
。
示例:
SELECT *
FROM (VALUES (1,'c1'),(2,'c2'),(3,'c3')) v (ids, textcol)
JOIN TABLE1 t1 on t1.ids = v.ids