Sql 内连接前的并集
为什么我在内部联接之前使用并集呢Sql 内连接前的并集,sql,union,inner-join,Sql,Union,Inner Join,为什么我在内部联接之前使用并集呢 select some_table1.some_column1, some_table1.some_column2 FROM some_table1 UNION ALL select some_table2.some_column1, some_table2.some_column2 FROM some_table2 INNER JOIN some_table3
select some_table1.some_column1,
some_table1.some_column2
FROM some_table1
UNION ALL
select some_table2.some_column1,
some_table2.some_column2
FROM some_table2
INNER JOIN some_table3
ON some_table3.some_column1 = some_table1.some_column1
我有一个eror:无法绑定多部分标识“some_table 3.some_column1”?
所有数据类型都是兼容的。当查询的后半部分中不存在
some\u table1
时,您试图将some\u table1
加入到some\u table3
中,而查询的后半部分中只存在前半部分。您将收到一个错误,因为这不是有效的SQL语法<代码>联合所有语法为:
SELECT <column1>
FROM <table1>
UNION ALL
SELECT <column1>
FROM <table2>
我猜你会喜欢这样的东西吧
SELECT
(
select some_table1.some_column1,
some_table2.some_column2
FROM some_table1
UNION ALL
select some_table2.some_column1,
some_table2.some_column2
FROM some_table2
) sub
INNER JOIN some_table3
ON some_table3.some_column1 = sub.some_column1
是的,它看起来像我想要的。据我所知,我必须在使用内部联接之前对结果进行分组?
SELECT
(
select some_table1.some_column1,
some_table2.some_column2
FROM some_table1
UNION ALL
select some_table2.some_column1,
some_table2.some_column2
FROM some_table2
) sub
INNER JOIN some_table3
ON some_table3.some_column1 = sub.some_column1