Je fais deux demandes, pour avoir une valeur. À mon avis, on serait plus rapide. Je pense que le meilleur moyen est d'utiliser join. Ceci est mon code:Jointure gauche, jointure interne, jointure de n'importe quoi?
$uid = db_query("SELECT uid FROM TABLE1 WHERE mail = '{$account->mail}' LIMIT 1");
$row = mysql_fetch_array($uid);
$uid = $row[0];
$brief = db_query("SELECT value FROM Table2 WHERE uid = '{$uid}' AND fid = '16' LIMIT 1");
$row = mysql_fetch_array($brief);
$brief = $row[0];`
Comment puis-je fusionner ces deux demande à l'un?
Merci beaucoup à l'avance!
Ceci est un produit cartésien. La variable $ uid provient de la première requête, je pense que vous vouliez écrire 'TABLE2.uid = TABLE1.uid'. Mais pour être honnête, je ne suis pas un fan de l'ancienne syntaxe, la syntaxe avec INNER JOIN (ou NATURAL INNER JOIN) est beaucoup plus claire. –
@Vincent Savard: Oui, théoriquement c'est un produit cartésien, mais "LIMIT 1" ne l'empêche-t-il pas? – thejh
@thejh: C'est toujours un produit cartésien, vous n'avez aucune idée de la ligne qui va être trouvée en premier. Mais ça ne marchera pas parce que $ uid n'existe pas (comme je l'ai dit, c'est à partir de sa première requête). –