sql - 左连接、内连接、连接什么?

标签 sql mysql

我正在执行两个请求,以获取值。在我看来,一个会更快。我认为最好的方法是使用 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/

相关文章:

mysql - 使用子查询的返回结果对 SQL 查询进行排序

sql - 针对聚合列的Hive查询优化在select语句中出现一次

java - jboss wildfly 数据源连接失败 - 在配置的阻塞超时内没有可用的托管连接

sql - 如何在TSQL中针对列值而不是参数测试XML属性?

python - 写入 SQL 数据库时发生 I/O 错误

php - 执行查询时出现问题(不在 GROUP BY 中)

mysql - select 语句中的子选择返回 null

php - 如何通过单击按钮使用 PHP/MySQL 将 MySQL 数据导出到 CSV/Excel 文件中?

php - 比较/检查 MySQL 中的两个表数据

MySQL更新列,这是另一列中的值