Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用内部联接将行添加到SQL查询的结果中?_Sql_Union_Inner Join - Fatal编程技术网

如何使用内部联接将行添加到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 当我的_表与另一个这样的表进行内部连接时,如何将额外的行添加到该表中 更新:哇,

过去,当我需要在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
当我的_表与另一个这样的表进行内部连接时,如何将额外的行添加到该表中

更新:哇,我刚刚搞错了。快回家了。我忘了我的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     
;