如何使用内部联接将行添加到SQL查询的结果中?
过去,当我需要在SQL语句的结果中添加一行时,我会编写如下语句:如何使用内部联接将行添加到SQL查询的结果中?,sql,union,inner-join,Sql,Union,Inner Join,过去,当我需要在SQL语句的结果中添加一行时,我会编写如下语句: SELECT colA, colB FROM my_table UNION SELECT 'foo' AS colA, 'bar' as colB; 但是,假设我编写了以下SQL: SELECT t1.colA, t1.colB, t2.colC FROM my_table t1 INNER JOIN my_other_table t2 当我的_表与另一个这样的表进行内部连接时,如何将额外的行添加到该表中 更新:哇,
SELECT colA, colB FROM my_table
UNION
SELECT 'foo' AS colA, 'bar' as colB;
但是,假设我编写了以下SQL:
SELECT t1.colA, t1.colB, t2.colC FROM my_table t1 INNER JOIN my_other_table t2
当我的_表与另一个这样的表进行内部连接时,如何将额外的行添加到该表中
更新:哇,我刚刚搞错了。快回家了。我忘了我的where子句
SELECT t1.colA, t1.colB, t2.colC
FROM my_table t1
INNER JOIN my_other_table t2
ON t1.colB = t2.colC
只需将第二个查询中的mytable替换为SELECT…,整个第一个查询在括号中:
SELECT t1.colA, t1.colB, t2.colC
FROM
( SELECT colA, colB
FROM my_table
UNION
SELECT 'foo' AS colA, 'bar' as colB
) AS t1
INNER JOIN my_other_table t2
ON t1.colB = t2.colC
;
联合只要求维度和类型相同,不考虑列名。可能可以,但我认为他/她想要联合的联合将导致始终添加最后一行;换句话说,加入并不会阻止它被包括在内。事实上,这与工会对工会没有任何关系。除了我的最后一条,所有人都不理会这不管用。请注意,colA和colB是my_表中的列,但colC是my_other_表中的列
SELECT
(t1.colA, t1.colB FROM my_table
UNION
SELECT 'foo' AS colA, 'bar' as colB) as t1
INNER JOIN
my_other_table t2 ON . . .
SELECT t1.colA, t1.colB, t2.colC
FROM
( SELECT colA, colB
FROM my_table
UNION
SELECT 'foo' AS colA, 'bar' as colB
) AS t1
INNER JOIN my_other_table t2
ON t1.colB = t2.colC
;