私は値を得るために2つの要求をしています。私の意見では、1つは速くなるでしょう。私は最良の方法は、結合を使用することだと思う。これは私のコードです:左ジョイント、内ジョイント、何でも参加できますか?
$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];`
どのようにこれらの2つの要求を1つにマージできますか?
多くのありがとうアドバンス!
これはデカルト製品です。 $ uid変数は最初のクエリのものですから、 'TABLE2.uid = TABLE1.uid'と書いたかったと思います。しかし、正直言って、私は古い構文のファンではなく、INNER JOIN(またはNATURAL INNER JOIN)の構文ははるかに明確です。 –
@Vincent Savard:理論上、デカルト積はありますが、それを防ぐには「制限1」しないでください。 – thejh
@thejh:それはまだデカルト積であるので、どの行が最初にマッチするのか分かりません。しかし、$ uidが存在しないので、とにかく動作しません(私が言ったように、彼の最初のクエリからです)。 –