Comunidad de diseño web y desarrollo en internet online

Consulta a 3 tablas con una limitada

Citar            
MensajeEscrito el 17 Ene 2013 06:20 pm
Hola, tengo un problema que no tengo idea de cómo solucionarlo. :( :(



Tal como pueden ver en la imagen que inserte, lo que quiero es hacer una consulta donde me muestre “la localidad” junto con el inmueble y solamente una imagen y NO todas las imágenes.

Al principio probé con esta consulta:

SELECT inmuebles.contrato, inmuebles.id, inmuebles.tipo, localidades.ciudad, inmuebles.descripcion, imagenes.imagen, inmuebles.precio
FROM localidades
INNER JOIN inmuebles ON localidades.id = inmuebles.id_localidad
LEFT JOIN imagenes ON inmuebles.id = imagenes.id_inmueble

Pero el problema era que me mostraba todas las imagenes de uno de los inmuebles y port al motivo los inmuebles se repetian mas de una vez, yo lo que quiero es que me muestre un inmueble con una imagen.

Luego me pasaron esta otra consulta:

SELECT
I.contrato,
I.id,
I.tipo,
L.ciudad,
I.descripcion,
G.imagen,
I.precio
FROM localidades L
INNER JOIN inmuebles I ON L.id = I.id_localidad
LEFT JOIN
(SELECT *
FROM
(SELECT *
FROM imagenes
ORDER BY RAND())
GROUP BY G.id_inmueble) G ON I.id = G.id_inmueble;

Pero no me sirve porque me da este error:

Every derived table must have its own alias

En esta última consulta ya estamos entrando en el campo de las subconsultas que es algo que nunca había trabajado y me esta desorientando bastante.

No pensé que fuera tan complejo lo que quería hacer.

Heeeeeeeeelp!!! :shock: :shock: :shock:

Por tabam

14 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Ene 2013 04:34 am
Por suerte lo pude resolver, le faltaba el alias A. :D :D :D

Aca esta la consulta funcionando:

$sql = " SELECT
I.contrato,
I.id,
I.tipo,
L.ciudad,
I.descripcion,
G.imagen,
I.precio
FROM localidades L
INNER JOIN inmuebles I ON L.id = I.id_localidad
LEFT JOIN
(SELECT *
FROM
(SELECT *
FROM imagenes
ORDER BY RAND()) A
GROUP BY id_inmueble) G ON I.id = G.id_inmueble";

A pesar de que funciona, si es posible me gustaría saber si esta consulta no pondrá un poco lento el acceso a la BD, ya que he leído por ahí que las subconsultas no están bien vistas y habrá otra forma de hacer la consulta.

Gracias :) :) :)

Por tabam

14 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.