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;
那么,JOIN
是FROM
子句中的运算符。整个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;