MySql内部加入WHERE子句

Adi*_*mar 29 mysql sql where-clause mysql-error-1064

这是我的代码:

 SELECT table1.f_id  FROM table1 WHERE table1.f_com_id = '430' AND      
 table1.f_status = 'Submitted' 
 INNER JOIN table2
 ON table2.f_id = table1.f_id
 where table2.f_type = 'InProcess'
Run Code Online (Sandbox Code Playgroud)

我需要信息来自table1f_com_id430 相关联的所有id 和提交的状态,并且该类型应仅在存储在其他表(table2)中的进程中

f_idp_keyf_key在两个表中.
但这给了我错误,我认为我把这个WHERE条款写错了,如何修复它.

错误消息:#1064 - 您的SQL语法出错; 检查与MySQL服务器版本对应的手册,以便在第2行的'INNER JOIN table2 ON table2.f_id ='附近使用正确的语法

him*_*056 49

是的,你是对的.你已经把WHERE条款错了.您只能WHERE在单个查询中使用一个子句,因此请尝试AND多个条件,如下所示:

 SELECT table1.f_id  FROM table1 
   INNER JOIN table2
     ON table2.f_id = table1.f_id
 WHERE table2.f_type = 'InProcess'
   AND f_com_id = '430'
   AND f_status = 'Submitted' 
Run Code Online (Sandbox Code Playgroud)


Mis*_*mon 8


1.在WHERE子句之前更改INNER JOIN.
你有两个不允许的WHERE.

试试这个:

SELECT table1.f_id FROM table1
  INNER JOIN table2 
     ON (table2.f_id = table1.f_id AND table2.f_type = 'InProcess') 
   WHERE table1.f_com_id = '430' AND table1.f_status = 'Submitted'