Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Fallo con intersect

Estas en el tema de Fallo con intersect en el foro de Mysql en Foros del Web. Hola, quiero hacer una consulta que es: Código PHP: $consulta  =  "select * from recetas where codreceta in ((select codreceta from ingred_rec" .                           " where idingred = '$ingrediente') INTERSECT " .                           " (select codreceta from recetas where $donde3)) order by valoracion desc" ;  Cuando la ejecuto por pantalla con ...
  #1 (permalink)  
Antiguo 28/11/2008, 07:00
Avatar de scout_vlc  
Fecha de Ingreso: julio-2007
Ubicación: Valencia
Mensajes: 141
Antigüedad: 16 años, 9 meses
Puntos: 0
Fallo con intersect

Hola, quiero hacer una consulta que es:

Código PHP:
$consulta "select * from recetas where codreceta in ((select codreceta from ingred_rec".
                         
" where idingred = '$ingrediente') INTERSECT ".
                         
" (select codreceta from recetas where $donde3)) order by valoracion desc"
Cuando la ejecuto por pantalla con un echo me sale esto:
select * from recetas where codreceta in ((select codreceta from ingred_rec where idingred = '3') INTERSECT (select codreceta from recetas where login = 'anasan')) order by valoracion desc
y me dice que las filas afectadas son -1...
La copio tal cual en phpmyAdmin y me sale este error:




Como no se ve bien el texto dice:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INTERSECT ( select codreceta from recetas where login = 'anasan' ) ) order by va' at line 1

¿Qué puede ser?
Hago las consultas por separado y sale bien, es decir, ejectuo lo que se ve en las imagenes:
CONSULTA 1

CONSULTA 2


Con lo que la receta con codreceta=45 está en ambas consultas y tendría que mostrarla ¿no?
¿Alguien puede ayduarme???
Gracias
  #2 (permalink)  
Antiguo 28/11/2008, 09:05
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Fallo con intersect

Que yo sepa, INTERSECT no puede usarse en MySQL.
Tal vez lograrías lo que quieres con algo así (no lo he probado):

SELECT *
FROM recetas`
WHERE login ='anasan'
AND codreceta
IN (

SELECT codreceta
FROM ingred_rec
WHERE idingred = 3
)
  #3 (permalink)  
Antiguo 28/11/2008, 16:21
Avatar de scout_vlc  
Fecha de Ingreso: julio-2007
Ubicación: Valencia
Mensajes: 141
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Fallo con intersect

Mil gracias!!! jajaja
es que como me dice mi profesor "mira que te gusta hacerlo complicado!" ;)
muchas gracias!
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 03:41.