ここに私のコードがあります:
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'
table1
に関連付けられているすべてのIDが430であり、ステータスが送信済みであり、タイプは他のテーブルに格納されている処理中のみである必要があるため、f_com_id
からの情報が必要です(table2
)
f_id
は、両方のテーブルでp_key
およびf_key
です。
しかし、これによりエラーが発生します。WHERE
句を間違っていると思います。どうすれば修正できますか?
エラーメッセージ:#1064-SQL構文にエラーがあります。 2行目で 'INNER JOIN table2 ON table2.f_id ='の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。
はい、あなたは正しいです。 WHERE
句が間違っています。 1つのクエリで使用できるWHERE
句は1つだけなので、次のような複数の条件に対して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'
1。 WHERE句の前にINNER JOINを変更します。
2。許可されていないWHEREが2つあります。
これを試して:
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'
Where句は1つしか記述できません。
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'