Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将2个Mysql查询合并为一个_Php_Mysql - Fatal编程技术网

Php 将2个Mysql查询合并为一个

Php 将2个Mysql查询合并为一个,php,mysql,Php,Mysql,我目前正在运行两个查询以查找一个结果,我有一种很好的感觉,我可以将这两个查询合并为一个结果。我已经尝试了下面的方法,但它仍然向我显示已出现在access\u number表中的结果 $query = "select * FROM `$table`.`access_number` WHERE `active`='1'"; $result = mysql_query($query,$db) or die(mysql_error()); while($row = mysql_fetch_array(

我目前正在运行两个查询以查找一个结果,我有一种很好的感觉,我可以将这两个查询合并为一个结果。我已经尝试了下面的方法,但它仍然向我显示已出现在
access\u number
表中的结果

$query = "select * FROM `$table`.`access_number` WHERE `active`='1'"; 
$result = mysql_query($query,$db) or die(mysql_error());
while($row = mysql_fetch_array($result)) {
  list($dd_inuse) = mysql_fetch_row(mysql_query("SELECT `did` FROM `$table`.`customer_dd` WHERE `did`='$row[did]' AND `callerid`='$callerid' LIMIT 1",$db));
  if(!$dd_inuse) {
     $goodone = $row['did'];
     break;
   }
}
我试着这样组合它,但它并没有向我展示独特的价值

select `access_number`.`did` from `access_number` 
INNER JOIN `customer_dd` 
WHERE `customer_dd`.`callerid`='$callerid' 
AND `customer_dd`.`did` !=`access_number`.`did` LIMIT 1
底线是,我试图在表
access\u number
中找到一个在
customer\u dd
中不存在的值

非常感谢您对我的任何帮助

您的代码:

SELECT `did` FROM `$table`.`customer_dd` 
WHERE `did`='$row[did]' AND `callerid` = '$callerid' LIMIT 1
根据您的代码,我找到了您的表
access\u number.did=customer\u dd.did

因此,您可以尝试:

select `access_number`.`did` from `access_number` 
INNER JOIN `customer_dd` ON `customer_dd`.`did` = `access_number`.`did`
WHERE `customer_dd`.`callerid` = '$callerid' AND `access_number`.`active`='1' LIMIT 1

您可以使用
left join
notnull
进行此操作

select 
a.access_number from access_number a
left join customer_dd c on c.did = a.did and c.callerid = '$callerid'
where c.did is null

对于第二个结果,您需要在第一个结果的结果中包装一段时间。我希望只使用一个查询,而不是在第一次获取后执行循环…这与我想要的相反。。。我想找到一个不在
customer\u dd