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

No aparezcan resultados de la primera consulta

Estas en el tema de No aparezcan resultados de la primera consulta en el foro de Mysql en Foros del Web. Hola amigos tengo un pequeño problema que nose si es posible resolverlo. Tengo dos consultas. En la primera uso MATCH AGAINST y en la segunda ...
  #1 (permalink)  
Antiguo 29/04/2016, 03:18
 
Fecha de Ingreso: enero-2016
Mensajes: 13
Antigüedad: 8 años, 2 meses
Puntos: 0
No aparezcan resultados de la primera consulta

Hola amigos
tengo un pequeño problema que nose si es posible resolverlo.

Tengo dos consultas. En la primera uso MATCH AGAINST y en la segunda RAND.
Se puede hacer que en la segunda consulta (RAND) NO aparezcan los resultados con la misma id que en la primera consulta (MATCH AGAINST), en el caso que los hubiera.

Código SQL:
Ver original
  1. SELECT * FROM patines WHERE MATCH ...AGAINST...
  2.  
  3. SELECT * FROM patines.. ORDER BY RAND()


saludos
gracias

Última edición por gnzsoloyo; 29/04/2016 a las 05:38
  #2 (permalink)  
Antiguo 29/04/2016, 05:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No aparezcan resultados de la primera consulta

Es posible, siempre y cuando las dos consultas devuelvan exactamente las mismas columnas, cosa que no queda clara en la segunda. Pareciera que se pidiera algo proveniente de un JOIN que en la primera no.
En este caso sería:

Código SQL:
Ver original
  1. SELECT * FROM patines WHERE MATCH ...AGAINST...
  2. UNION
  3. SELECT *
  4. FROM
  5.     (SELECT * FROM patines.
  6.     WHERE....
  7.     ORDER BY RAND()) tabla
El UNION hace un DISTINCT implícito y descarta las repeticiones.

Si las quieres por separado, entonces la primera tiene que ser puesta como subconsulta de exclusion en la segunda.
Código SQL:
Ver original
  1. SELECT * FROM patines.
  2. WHERE IS NOT IN(SELECT id FROM patines WHERE MATCH ...AGAINST...)
  3. ORDER BY RAND()
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 29/04/2016, 07:59
 
Fecha de Ingreso: enero-2016
Mensajes: 13
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: No aparezcan resultados de la primera consulta

agggggg perdon,
queria excluir en una consulta random el id en el que me encuentro.

Por ejemplo estoy en la id = 45.
como puedo hacer para que en esa consulta ademas de lo que tengo me excluya el id 45 ??
Código SQL:
Ver original
  1. SELECT * FROM patines WHERE id_marca = 20 ORDER BY RAND()

saludos

Etiquetas: primera, resultados, select
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 07:48.