Voici mon 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'
J'ai besoin d'informations de table1
Comme identifiant associé à f_com_id
Comme 430 et de l'état tel que soumis et le type doit être en cours de traitement et stocké dans une autre table (table2
)
f_id
Est p_key
Et f_key
Dans les deux tables.
Mais cela me donne des erreurs, je pense que je mets la clause WHERE
mal, comment la réparer.?
Error msg: # 1064 - Vous avez une erreur dans votre syntaxe SQL; Consultez le manuel correspondant à la version de votre serveur MySQL pour connaître la syntaxe à utiliser près de 'INNER JOIN table2 ON table2.f_id =' à la ligne 2.
Oui, tu as raison. Vous avez mal placé la clause WHERE
. Vous ne pouvez utiliser qu'une seule clause WHERE
dans une requête unique, essayez donc AND
pour plusieurs conditions, comme ceci:
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. Modifiez INNER JOIN avant la clause WHERE.
2. Vous avez deux WHERE qui ne sont pas autorisés.
Essaye ça:
SELECT table1.f_id FROM table1 INNER JOIN table2 ON (table2.f_id = table1.f_id AND table2.f_type = 'InProcess') O table1. f_com_id = '430' AND table1.f_status = 'Soumis'
Vous ne pouvez écrire qu'une seule clause where.
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'