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

SQL Limit con Join

Estas en el tema de SQL Limit con Join en el foro de Mysql en Foros del Web. Bueno, espero que anden bien! Código PHP: SELECT works .*,  images .*  FROM works  JOIN images  ON works . wName = images . wName  ORDER BY works . id DESC ,  images.0rder ASC  ...
  #1 (permalink)  
Antiguo 25/05/2009, 23:21
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
SQL Limit con Join

Bueno, espero que anden bien!

Código PHP:
SELECT works.*, images.* 
FROM works 
JOIN images 
ON works
.wName=images.wName 
ORDER BY works
.id DESCimages.0rder ASC 
LIMIT 4 
Tengo eso, mi problema es que no quiero que devuelva solo 4 ROWs, sino que quiero que se base en 4 ROWs de la tabla WORKS, pero lo que hace es devolverme 4 ROWs de WORKS+IMAGES, probe con TOP, pero por alguna extraña razon me tira..

Cita:
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 '4 works.*, images.* FROM works JOIN images ON works.wName=images.wName ORDER BY ' at line 1
Saludos y gracias de ante mano!
  #2 (permalink)  
Antiguo 26/05/2009, 04:47
 
Fecha de Ingreso: enero-2002
Ubicación: Barcelona
Mensajes: 279
Antigüedad: 22 años, 3 meses
Puntos: 1
Respuesta: SQL Limit con Join

Para usar el LIMIT, ¿no hacen falta dos valores? inicial y final??
__________________
Sataca - La Retícula
www.lareticula.com
  #3 (permalink)  
Antiguo 26/05/2009, 18:52
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: SQL Limit con Join

Por defecto se setea el valor inicial(0) si solo seteas un numero(este unico numero se setearia por defecto como el final)

LIMIT 4==LIMIT 0,4
  #4 (permalink)  
Antiguo 26/05/2009, 23:47
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: SQL Limit con Join

Ok, si solo quieres informacion de la tabla works porque haces un join entonces?
  #5 (permalink)  
Antiguo 27/05/2009, 02:49
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: SQL Limit con Join

No quiero solo informacion de la tabla works... quiero que se tomen solo 4 ROWs de la tabla works....

Si pongo limite 4, lo que hace es limitar las imagenes a 4, pero cada WORK tiene mas de 10 imagenes, no quiero limitar las imagenes, quiero limitar los WORKs

Saludos
  #6 (permalink)  
Antiguo 31/05/2009, 21:40
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: SQL Limit con Join

ayuda por favor :(
  #7 (permalink)  
Antiguo 01/06/2009, 00:54
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: SQL Limit con Join

Quieres decir los últimos 4 works o te da igual.
Si son los últimos, prueba esto: no lo he probado.

SELECT works.*, images.*
FROM works
INNER JOIN (SELECT works.id idw FROM works GROUP BY works.id ORDER BY works.id LIMIT 4)T1 ON t1.idw = works.id INNER JOIN images
ON works.wName=images.wName
ORDER BY works.id DESC, images.0rder ASC
  #8 (permalink)  
Antiguo 06/06/2009, 02:48
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: SQL Limit con Join

._.

No sabia que se podian hacer "subqueries"

Quedo asi al final

Código PHP:
SELECT 
FROM images 
JOIN 
(SELECT FROM works WHERE images!="NULL" ORDER BY wID DESC LIMIT 4Q1 
ON images
.wName=Q1.wName 
WHERE images.0rder
<
ORDER BY Q1
.wID DESCimages.0rder ASC 
Muchas gracias jurena :)
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 04:21.