Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.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 - Fatal编程技术网

使用内部联接组合多个临时SQL表

使用内部联接组合多个临时SQL表,sql,Sql,我想这样做: (Select field1 FROM TB1 INNER JOIN . . WHERE etc ) temp1 INNER JOIN (Select field1 FROM TB2 INNER JOIN . . WHERE etc ) temp2 WHERE temp1.field1=temp2.field1 但我有一个错误:“缺少关键字”

我想这样做:

 (Select field1
     FROM TB1
     INNER JOIN 
      .
      .
     WHERE etc
     ) temp1

INNER JOIN

(Select field1
     FROM TB2
     INNER JOIN 
      .
      .
     WHERE etc
     ) temp2

WHERE temp1.field1=temp2.field1
但我有一个错误:“缺少关键字”


这里缺少什么?

通过查看您提供的示例,实际上您正在尝试合并两个表,这是由
union
执行的

如果您确实想使用
内部联接
,那么上的
将丢失。您需要提供一个列来联接这些表


您需要从这两个查询中选择:

SELECT *
FROM (Select field1
      FROM TB1
      INNER JOIN 
      .
      .
      WHERE etc
     ) temp1
INNER JOIN (Select field1
            FROM TB2
            INNER JOIN 
            .
            .
            WHERE etc
           ) temp2 ON temp1.field1 = temp2.field1
我使用了
选择*
,但您可以将其更改为列出要返回的字段

但是,这将为您提供每行中合并的两个查询的结果。如果希望结果在不同的行中垂直相加,请改用
UNION

(Select field1
 FROM TB1
 INNER JOIN 
 .
 .
 WHERE etc)
UNION
(Select field1
 FROM TB2
 INNER JOIN 
 .
 .
 WHERE etc)

我猜您正在寻找
联合
您需要在顶部第一个括号之前的
选择*FROM
,以及
加入
条件。将您的
WHERE
关键字替换为
ON
。实际上缺少了很多。你希望你的最终结果是什么?缺少的东西太多了,以至于不清楚您要做什么。您的预期输出是什么?您使用的是哪种产品?博士后?神谕“SQL”只是一种查询语言,而不是特定数据库产品的名称。但是一般来说,
JOIN
还需要一个由
ON
关键字定义的连接条件。好的,已经这样做了。谢谢现在我遇到了以下错误:并行查询服务器达到了异常条件。这意味着什么?对于多条记录?您使用了哪种查询,第一个是带有
JOIN
的查询,第二个是带有'UNION'的查询?你需要发布整个查询,否则我们无法帮助你。嗨,我可以把代码放在哪里。此评论字段有限。请编辑您的问题,并在此处添加您的查询和所有相关信息。您可以在问题下方看到编辑链接。