bueno pues aqui te dejo una funcion malevola que en alguna ocasion utilice precisamente creando una tabla temporal con la cual hago un query medio macabro (left join) debes tomar en cuenta que para poder crear ese tipo de tablas , el usuario con que conectas php a tu base de datos debe de tener el permiso de create temporary
Código PHP:
function existeresgrupo($respuestas){
global $objDB;
/*$sql="select idgii_respgrupo from gii_respgrupo_respuestas where idgii_respuestas in($cadenarespuestas) limit 1";
#echo $sql . "<br>";
$data=$objDB->Select($sql);
if ($objDB->NumRows()>0) {
return true;
}
else {
return false;
}*/
$numresp=count($respuestas);
$sql1="CREATE TEMPORARY TABLE IF NOT EXISTS temp_respuestas
(
`idgii_respuestas` int(10) unsigned NOT NULL
) ";
#echo "<br><br><br> aqui <br>";
$objDB->exeQuery($sql1);
foreach ($respuestas as $keyres => $valueres){
$query="INSERT INTO `temp_respuestas`(idgii_respuestas) VALUES ('$keyres');";
#echo $query . "<br>";
$objDB->exeQuery($query);
}
$sql2="select a.idgii_respgrupo, count(a.idgii_respuestas)
from gii_respgrupo_respuestas a left join temp_respuestas b on a.idgii_respuestas=b.idgii_respuestas
group by a.idgii_respgrupo having count(a.idgii_respuestas)=$numresp and count(b.idgii_respuestas)=$numresp limit 1";
$data=$objDB->Select($sql2);
$numrows=$objDB->NumRows();
#print_r($data);
#echo "<br>".$sql2;
#echo "<br><br><br>";
$sqldrop="DROP TABLE temp_respuestas";
$objDB->exeQuery($sqldrop);
if($numrows>0){
if ($data[0]["idgii_respgrupo"]!=0) {
return $data[0]["idgii_respgrupo"];
}else {
return 0;
}
}
else {
return 0;
}
}