MYSQL 6.3中的INNER JOIN问题



im试图连接两个表中的数据,如下所示:

Select portt.nameport, tool.weapen
From Portt 
Where  portt.toolsum - (    select count(*) 
From tool               
Group by nameport) >2
INNER JOIN tool on tool.nameport=portt.nameport;

但是有一个1064错误:

Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN tool on tool.nameport=portt.nameport' at line 6

我不明白为什么。

没有内部联接的代码运行良好:

Select portt.nameport
From Portt 
Where  portt.toolsum - (    select count(*) 
From tool               
Group by nameport) >2;

首先,这个查询:

Select portt.nameport
From Portt 
Where  portt.toolsum - (select count(*) 
From tool               
Group by nameport
) > 2;

您有一个标量子查询。但是,if可能返回多行,这将是一个错误。我猜你想要一个相关的子查询在这里:

select p.nameport
from Portt p
where p.toolsum - (select count(*) 
from tool t          
where t.nameport = p.nameport
) > 2;

那么,JOINFROM子句中的运算符。整个FROM子句需要位于where之前。所以我怀疑你想写:

select p.nameport
from Portt p join
tool t
on t.nameport = p.nameport
where p.toolsum - (select count(*) 
from tool t          
where t.nameport = p.nameport
) > 2;

最新更新