![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
27/05/2004, 23:57
|
![Avatar de sism82](http://static.forosdelweb.com/customavatars/avatar44724_1.gif) | | | Fecha de Ingreso: octubre-2003 Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 21 años, 3 meses Puntos: 1 | |
casiopea, según veo esta consulta debe resolverte el problema
"SELECT * FROM tservicios WHERE CveServi NOT LIKE (SELECT tservicios.CveServi FROM tservicios, servempresa WHERE tservicios.CveServi = servempresa.CveServi AND servempresa.CveEmpre = ".$claveDeEmpresa.")";
lamentablemente si estas trabajando con una base de datos que no soporte consultas anidadas, no será posible, y tendrás que hacerlo en dos pasos... primero haces la consulta anidada (la que está entre parentesis), esa consulta anidada te devuelve los servicios que SI están disponibles para la clave de empresa, los guardas en un Array, para luego hacer una consulta enoooooorme donde vas a ir concatenando algo asi:
$consulta = "SELECT * FROM tservicios WHERE CveServi ";
$numClaves = count($claves);
foeach($claves as $in => $clave)
if($in != $numClaves)
$consulta .= "!= ".$clave." AND CveServi ";
else
$consulta .= "!= ".$clave."";
como ves es mas rollo, pero funciona... espero no haberme equivocado en alguna cosilla del código y disculpa la falta de tabulaciones y buenas costumbres de programación :p pero aqui no me funciona bien el teclado...
si te quedan dudas ando por aqui otro rato... un saludo |