Foros del Web » Programando para Internet » PHP »

¿Como se anidan varios select en uno solo?

Estas en el tema de ¿Como se anidan varios select en uno solo? en el foro de PHP en Foros del Web. Hola a todos. Me gustaría saber como se pueden anidar varios SELECT en uno sólo. Por ejemplo, si tuviera estos 2 select independientes: SELECT CAMPO1,CAMPO2 ...
  #1 (permalink)  
Antiguo 08/06/2002, 10:46
 
Fecha de Ingreso: mayo-2002
Mensajes: 41
Antigüedad: 22 años, 6 meses
Puntos: 0
¿Como se anidan varios select en uno solo?

Hola a todos.

Me gustaría saber como se pueden anidar varios SELECT en uno sólo.

Por ejemplo, si tuviera estos 2 select independientes:

SELECT CAMPO1,CAMPO2 FROM TABLA1 WHERE CAMPO1=1
SELECT CAMPO3,CAMPO4 FROM TABLA2 WHERE CAMPO3='HOLA'

¿Cual sería el SELECT resultante de unirlos?

Gracias por anticipado
  #2 (permalink)  
Antiguo 08/06/2002, 12:39
 
Fecha de Ingreso: febrero-2002
Mensajes: 127
Antigüedad: 22 años, 9 meses
Puntos: 0
Re: ¿Como se anidan varios select en uno solo?

la anidación de los select se utiliza de la siguiente manera:
SELECT tabla1.campo1 from tabla1 WHERE tabla.campo1 IN (SELECT tabla2.campo1 from tabla2);
En este ejemplo se seleccionarían todos aquellos campos de la tabla1 que se encuentren tb. en la tabla2. Este es un ejemplo de selects anidados, pero se pueden utilizar de otras maneras.
De antemano te aviso que mysql no los soporta y si quieres realizar operaciones parecidas tendrás que recurrir a truquillos.
Un saludo.


Val Muñoz de Bustillo.<BR>
Todo sobre DHTML y javascript en <A HREF="http://www.iespana.es/topscripts">TopScripts</A>
  #3 (permalink)  
Antiguo 09/06/2002, 04:38
 
Fecha de Ingreso: mayo-2002
Mensajes: 41
Antigüedad: 22 años, 6 meses
Puntos: 0
Re: ¿Como se anidan varios select en uno solo?

Muchas gracias por la información.

Podrías decirme cuales son esos truquis.

Gracias
  #4 (permalink)  
Antiguo 10/06/2002, 06:35
 
Fecha de Ingreso: febrero-2002
Mensajes: 127
Antigüedad: 22 años, 9 meses
Puntos: 0
Re: ¿Como se anidan varios select en uno solo?

Bueno, uno de los trucos que yo utilizo, y que conozco gracias a nuestro compañero webstudio es hacer la segunda consulta y sacarla en un array.
Luego conviertes ese array en una cadena con implode (mira la sintaxis en el manual) y ahora puedes realizar la misma consulta de la q te hablé pero sin subconsulta:
SELECT * campo1 FROM tabla1 IN (&quot;$cadena&quot;);
cadena es el array que nos dio como resultado la otra consulta convertido en una cadena con los valores separados por comas:
$cadena=&quot;'valor1','valor2','valor3',etc&quot; ;
Te pongo un ejemplo que tengo en una de mis páginas para q te aclares algo mas:

$result2 = mysql_query ($query2)
or die (&quot;Fallo en la consulta&quot;);
//Itroduzco los datos de la consulta en un array
while($Carreras=mysql_fetch_row($result2)){
$Valores[]=&quot;\&quot;&quot;.$Carreras[0].&quot;\&quot;&quot;;
}
//Convierto el array a cadena
$Cadena=implode(&quot;,&quot;,$Valores);
//Luego utilizaría la cadena dentro de la consulta final
Un saludo



Val Muñoz de Bustillo.<BR>
Todo sobre DHTML y javascript en <A HREF="http://www.iespana.es/topscripts">TopScripts</A>
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 21:33.