Foros del Web » Programando para Internet » PHP »

My sql

Estas en el tema de My sql en el foro de PHP en Foros del Web. Desde PHP necesito hacer una sql similar a la siguiente, pero creo que no se pueden hacer select anidados con Mysql, como podría solucionarlo si ...
  #1 (permalink)  
Antiguo 18/03/2004, 07:25
 
Fecha de Ingreso: octubre-2003
Mensajes: 32
Antigüedad: 14 años, 1 mes
Puntos: 0
My sql

Desde PHP necesito hacer una sql similar a la siguiente, pero creo que no se pueden hacer select anidados con Mysql, como podría solucionarlo si es que no se puede hacer bien mediante mysql o mediante codigo PHP:

select * from tabla where campo not in (select campo from tabla2 where campo3=numero)

Gracias
  #2 (permalink)  
Antiguo 18/03/2004, 07:57
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

MySQL no puede ejecutar subconsultas en versiones inferiores a 4.1 (o es 4.0).

Asi que la solucion seria hacer primero la subconsulta y crear con los datos de esa subconsulta la cadena de valores para meterlos en el IN.

Seria algo como:
Código PHP:
$consulta=mysql_query("subconsulta");
$valores=array();
while (
$row=mysql_fetch_assoc($consulta)) {
  
$valores[]=$row['campo'];
}
$lista=implode(',',$valores);
$sql="SELECT * FROM tabla WHERE campo2 NOT IN ($lista)"
Mas o menos (puede haber errores de sintaxis). Pero para coger la idea vale.

Esta seria la solucion rapida con PHP. Tambien tienes una solucion con MySQL e http://www.mysql.com/doc/en/Rewriting_subqueries.html

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 18/03/2004, 10:19
 
Fecha de Ingreso: octubre-2003
Mensajes: 32
Antigüedad: 14 años, 1 mes
Puntos: 0
Muchas gracias Josemi
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:07.