Comunidad de diseño web y desarrollo en internet online

Consulta dos tablas: left, right inner JOIN o que?

Citar            
MensajeEscrito el 12 Abr 2007 06:58 pm
Hoy no logro crear una consulta que usa dos o más tablas con mysql

Tengo una tabla con immuebles de los cuales algunos se pueden alquilar por dias.
En otra tabla tengo los que se han alquilado, con alta y baja.

El campo que las une es el id_immueble.

Bueno, pues cuando se inserta o edita un immueble se puede decidir si éste será para alquilar o no. Entonces en otra página, tendría que poner el listado de los immuebles disponibles para alquilar, pero que aún no se han alquilado. Y aquí tengo la duda. Por ejemplo yo he alquilado un immueble. Y tengo dos que no lo están, es decir que aún no están en la tabla de alquilados, pero sí en la tabla de immuebles.

Tablas (resumidas)

Tabla immuebles

id_immueble int(11) campo clave
alquiler tinyint(1) campo si-no (1, 0)
...

Tabla alquiler

id_alquiler (int(11) campo clave
id_immueble int(11) campo clave externo
...

Bueno la pseudoconsulta sería

selecciona de "immuebles" los registros que id_alquiler = 1 (es decir que esten disponibles para alquilar) pero que no esten en la tabla "alquiler" (es decir que aun no se hayan alquilado)

por favor, ilustrenme, porque he perdido varias horas... si no me he explicado bien, pregunten.
:?

Gracias de anticipadas.

PD.: immueble ya sé que se escribe inmueble, pero en catalán se escribe con m y me confundí, disculpen.

Por Sisco

BOFH

3700 de clabLevel

12 tutoriales
4 articulos

Genero:Masculino   Bastard Operators From Hell

Catalunya

firefox
Citar            
MensajeEscrito el 12 Abr 2007 07:18 pm

Código :

select * from immuebles where id_alquiler=1 and id_immueble not in (select id_immueble from alquiler)


Espero y te sirva.

Por Darel

725 de clabLevel

5 tutoriales

 

I'm a human

firefox
Citar            
MensajeEscrito el 12 Abr 2007 10:46 pm
La mejor forma de hacer eso, es esta:

Código :

SELECT * 
FROM immuebles AS inm
LEFT JOIN alquiler AS alq
WHERE 
alq.idAlquiler IS NULL


^^

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 13 Abr 2007 09:03 am
Estupendísimo. Funcionan los dos soluciones. Gracias de nuevo. :)

Por Sisco

BOFH

3700 de clabLevel

12 tutoriales
4 articulos

Genero:Masculino   Bastard Operators From Hell

Catalunya

firefox
Citar            
MensajeEscrito el 13 Abr 2007 08:41 pm
mmm este post , hay algo parecido,.
Lo que aprendi de el (Diganme si me equivoco) , es que la consulta de dano es mas Eficiente, debido a que la de Darel, es anidada, y ademas algunas versiones de mysql no permiten las subqueries...
^^ Saludos

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox

 

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