Page 1 sur 1

Recherche une information dans plusieurs tables Mysql

Posté : 19 oct. 2005, 12:10
par VincentBdx
Bonjour,

Je débute avec MySql.

Je cherche à concevoir une instruction qui permette de rechercher la même information dans plusieurs tables.

Ici, j'ai trois tables :
- cherc,
- presc,
- prest,
qui contiennent un champ mel.

Pour valider une demande de rappel de mot de passe, je veux auparavant vérifier que le mel existe, grâce à une recherche sur les trois tables. Je veux que les enregistrement soient comptés : si le résultat est égal à 0, alors le mel n'existe pas ; s'il est diférent de 0, alors le mel existe et le mel peut-être renvoyé.

J'utilise les "quote_smart" pour avant d'alimenter ma base, mais je ne pense pas que cette précaution ait une incidence sur mon problème.

Or, les trois instructions suivantes ne fonctionnent pas :

1ère proposition
$sql = "SELECT mel FROM cherc OUTER JOIN presc OUTER JOIN prest WHERE mel = '$mel'"
2ème proposition
$sql = "SELECT mel FROM (cherc || presc || prest) WHERE mel = '$remel'"
3ème proposition
$sql = "SELECT mel FROM cherc.presc.prest WHERE mel = '$remel'"
Ces instructions sont suivies des deux lignes suivantes :
$req = mysql_query($sql);
$res = mysql_num_rows($req);
Or, mon navigateur me renvoie
"Warning: mysql_num_rows(): supplied argument is not a valid MySQL..."

En revanche, si je limite à ma recherche à une seule table, mon instruction fonctionne correctement.

J'ai pensé imbriquer des "if", mais la solution ne me paraît pas idéale.

Si vous pouviez m'apporter un éclairage voire une aide, je vous en serais très reconnaissant.

Cordialement,

Vincent

Posté : 19 oct. 2005, 12:38
par mere-teresa
$sql = "SELECT mel FROM cherc INNER JOIN presc INNER JOIN prest WHERE cherc.mel = '$mel'"