我正在执行两个请求,以获取值。在我看来,一个会更快。我认为最好的方法是使用 join。这是我的代码:
$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];`
如何将这两个请求合并为一个?
非常感谢!
最佳答案
SELECT value, ui
FROM TABLE1 T1
INNER JOIN Table2 T2
USING (uid)
WHERE mail = '{$account->mail}'
AND fid = 16
LIMIT 1
但是你的查询很奇怪。 uid
是唯一的吗? fid
是唯一的吗?否则,它将选择一个“随机”行。
基本上,我的查询使用 uid 列将 TABLE1 与 Table2 连接起来,并且只需要 mail = $account->mail 且 fid = 16 的行。因此,如果有多于一行,您无法确定是哪一行将选择其中之一。
关于sql - 左连接、内连接、连接什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4289274/