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