wake-up-neo.net

MySql Inner Join with WHERE-Klausel

Hier ist mein Code:

 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'

Ich benötige Informationen von table1, Da alle mit f_com_id Verknüpften IDs als 430 und der Status als gesendet angegeben wurden. Der Typ sollte nur in Bearbeitung sein, der in einer anderen Tabelle gespeichert ist (table2).

f_id Ist in beiden Tabellen p_key Und f_key.
Aber das gibt mir Fehler, ich denke, ich setze die WHERE -Klausel falsch, wie man es behebt.

Error msg: # 1064 - Sie haben einen Fehler in Ihrer SQL-Syntax. Überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, auf die richtige Syntax, die in der Nähe von 'INNER JOIN table2 ON table2.f_id =' in Zeile 2 verwendet werden kann

29
Aditya Kumar

Ja, du hast recht. Sie haben die WHERE -Klausel falsch gesetzt. Sie können nur eine WHERE -Klausel in einer einzelnen Abfrage verwenden. Versuchen Sie also, AND für mehrere Bedingungen wie diese zu verwenden:

 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' 
48
hims056


1. Ändern Sie den INNER JOIN vor der WHERE-Klausel.
2. Du hast zwei WHEREs, was nicht erlaubt ist.

Versuche dies:

 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' 
8
Mistdemon

Sie konnten nur eine where-Klausel schreiben.

 SELECT table1.f_id  FROM table1
 INNER JOIN table2
 ON table2.f_id = table1.f_id
 where table1.f_com_id = '430' AND      
 table1.f_status = 'Submitted' AND table2.f_type = 'InProcess'
1
xdazz