Foros del Web » Programando para Internet » PHP »

Ayuda consultas

Estas en el tema de Ayuda consultas en el foro de PHP en Foros del Web. Hola, tengo el siguiente problema, tengo dos tablas, de una quiero recoger 3 campos y mostrar todos los valores es decir una tabla con $row["campo"]. ...
  #1 (permalink)  
Antiguo 07/05/2007, 02:53
 
Fecha de Ingreso: abril-2007
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Ayuda consultas

Hola, tengo el siguiente problema, tengo dos tablas, de una quiero recoger 3 campos y mostrar todos los valores es decir una tabla con $row["campo"]. Hasta aqui bien, pero ahora debo hacer lo siguiente, mientras que la primera consulta recoja datos recoger también un campo de la segunda tabla cuando coincidan distribuidor y cif. No se si me he explicado bien, espero que si de todas formas les pongo el código con el cual lo estoy intentando yo:

Código:
$sentencia= mysql_query("SELECT email, cif FROM ficha WHERE cif in (SELECT dominio, dvencimiento, distribuidor FROM servicios WHERE dvencimiento = '$fecha_actual')", $link) or die (mysql_error());
Pero me da un error cuando voi a cargar la página, me sale una página en blanco que pone lo siguiete:

"Operand should contain 1 column(s)"

Espero vuestra ayuda, gracias de antemano, un saludo.
  #2 (permalink)  
Antiguo 07/05/2007, 02:58
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Ayuda consultas

Tienes una incongruencia en la consulta. Donde pones '...FROM ficha WHERE cif in (SELECT ...' vienes a decir que te busque los registros de ficha que tengan como valor de cif los valores del siguiente select. Lo que pasa es que en ese select estás devolviendo más de un valor. Entonces el MySQL no puede comparar un valor (cif) con varios valores (dominio, dvencimiento, distribuidor).

Un saludo
  #3 (permalink)  
Antiguo 07/05/2007, 03:54
 
Fecha de Ingreso: abril-2007
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Re: Ayuda consultas

Ok, gracias. Ahora me podrian decir como seria para que funcionase? Gracias
  #4 (permalink)  
Antiguo 07/05/2007, 08:50
Avatar de carlosmbrizuela  
Fecha de Ingreso: enero-2007
Ubicación: La Plata (Argentina)
Mensajes: 490
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: Ayuda consultas

cuando se hacen consultas anidadas se debe poner el en el segundo select el mismo tipo de dato que en la clausula IN. En tu script hay mas de una dato solo debes dejar el campo que mache con sif.

FROM ficha WHERE cif in (SELECT tipo_cif FROM servicios WHERE dvencimiento = '$fecha_actual')", $link) or die (mysql_error());

saludos
__________________
http://www.rollermountain.com
  #5 (permalink)  
Antiguo 07/05/2007, 09:13
 
Fecha de Ingreso: abril-2007
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Re: Ayuda consultas

Ya esta solucionado he utilizado una consulta multitabla ya que necesitaba todos los campos que seleciconaba en el segundo select y no podia prescindir de ellos, muchas gracias por vuestra ayuda un saludo
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 17:15.