INNER JOIN到SELECT语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了INNER JOIN到SELECT语句相关的知识,希望对你有一定的参考价值。

我有2个表,主要和次要,具有相同的列。它们共享一个参考号,其中包含一些重复的条目和一些独有的条目。我试图从他们的查询组合,以便从主要选择所有ref复制的所有,然后从两者中选择所有剩余。

这是我尝试过的:

SELECT * FROM primary as p
INNER JOIN 
(SELECT * FROM primary WHERE ref NOT IN ( SELECT ref from secondary ) as s)
ON p.ref = s.ref

我收到一个语法错误,似乎与最后一个“ON p.ref = s.ref”部分有关。我究竟做错了什么?

答案

不确定,代码实际上是否会尝试实现,但语法错误与最后一个右括号相关联。试试这个:

SELECT * FROM primary as p
INNER JOIN 
(SELECT * FROM primary WHERE ref NOT IN ( SELECT ref from secondary )) as s
ON p.ref = s.ref
另一答案

INNER JOIN让我走错了路。使用UNION让我得到了我想要的结果。

SELECT * FROM primary
UNION
(SELECT * FROM secondary WHERE ref NOT IN ( SELECT ref from primary ))

以上是关于INNER JOIN到SELECT语句的主要内容,如果未能解决你的问题,请参考以下文章

内连接INNER JOIN

PHP,PDO,SQLite INNER JOIN语句和变量

SQL语句中LEFT JOIN和RIGHT JOIN 以及INNER JOIN的区别

SQL语句 in和inner join各有什么优点

mysql inner join如何显示记录为空的数据

“INNER JOIN 之前的 Sub SELECT”还是“INNER JOIN 之后的 WHERE”?