php - 将循环的 mysql 查询转换为单个查询

标签 php mysql

我有一个 SQL 查询

$var = 123;
$sql="SELECT COL1, COL2, COL3 FROM `table1`  WHERE `COL1`='$var'";

此查询(循环)的结果用于从另一个表中获取每行的计数。

$value = $row['COL2'];
$var2= mysql_num_rows(mysql_query("SELECT MY_COL FROM `table2` WHERE `column1` ='".$var1."' AND column2 = $value"));

我试过将两者结合起来

$sql = "SELECT A.COL1, A.COL2, A.COL3, COUNT(B.MY_COL) FROM `table1` A LEFT JOIN `table2` B ON A.COL2 = B.column2 WHERE A.COL1=$var"

但是结果是错误的。使用 ON A.COL2 = B.column2 是否正确? 如何将这两个查询合并为一个以减少对 mysql 的调用?

Table1 的记录可能不在 Table2 中。

最佳答案

试试这个:

$sql = "SELECT A.COL1, A.COL2, A.COL3, COUNT(B.MY_COL) FROM `table1` A LEFT JOIN `table2` B ON A.COL2 = B.column2 AND A.COL1=$var"

关于php - 将循环的 mysql 查询转换为单个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27618555/

相关文章:

php - 在 Laravel 中为 Controller 传递默认数据

sql - 这个查询有什么问题吗?

mysql - 无法在 mysql 多重搜索中搜索不完整的单词

php - mysql查询返回0

mysql - 获取的关联中不允许使用 with 子句

php - MySQL:如果已使用 INSERT INTO 使用唯一字段,如何执行操作

php - Select List后查询SQL数据库

php - 如何仅序列化一对多关系的子集?

javascript - 使用 PHP 和 JavaScript 以逗号分隔获取多个值

mysql - Grails 数据库迁移 - 如何更改十进制数据库字段以具有 3 的比例属性?