我有一个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的记录可能不在表2中。
答案 0 :(得分:1)
试试这个:
$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"
答案 1 :(得分:0)
$var2= mysql_num_rows(mysql_query("SELECT MY_COL FROM `table2` WHERE `column1` ='".$var1."' AND column2
IN (
SELECT COL2 FROM `table1` WHERE `COL1`='$var'
)
));
使用MySQL WHERE IN
注意:不要使用mysql_函数,不推荐使用它们,将来的PHP版本将删除它们。