Problema con una consulta de unión interna (INNER JOIN)
Tengo que hacer una consulta en la cual me muevo por tres tablas, uso la cláusula INNER JOIN pero me da errores. Tengo tres datos que me pasan por parámetro: localidad, categoria, habitacion
Los datos localidad y categoria los tengo en la tabla HOTELES, pero el dato habitacion está en una tercera tabla. Las tres estás relacionadas entre sí.
La consulta que hago es la siguiente:
String query = "SELECT Nombre, Icono FROM Hoteles INNER JOIN (Habitaciones INNER JOIN (TiposHabitacion)) WHERE (Hoteles.Localidad='"+localidad+"' AND Hoteles.Categoria='"+categoria+"' AND TiposHabitacion.Nombre='"+habitacion+"') ORDER BY Nombre";
¿Qué es lo que hago mal?
Gracias
Los datos localidad y categoria los tengo en la tabla HOTELES, pero el dato habitacion está en una tercera tabla. Las tres estás relacionadas entre sí.
La consulta que hago es la siguiente:
String query = "SELECT Nombre, Icono FROM Hoteles INNER JOIN (Habitaciones INNER JOIN (TiposHabitacion)) WHERE (Hoteles.Localidad='"+localidad+"' AND Hoteles.Categoria='"+categoria+"' AND TiposHabitacion.Nombre='"+habitacion+"') ORDER BY Nombre";
¿Qué es lo que hago mal?
Gracias
Muestranos las 3 tablas que utilizas, con sus respectivos campos, y te podremos ayudar .........
Creo que la sintaxis del INNER JOIN, le falta la referencia de que campos van "ligados" con un ON.
Proba de esta forma. Suponiendo que el campo Nombre esta en todas las tablas que haces el Join.
SELECT Nombre, Icono
FROM Hoteles
INNER JOIN Habitaciones
INNER JOIN TiposHabitacion
ON Hoteles.Nombre = Habitaciones.Nombre
ON Habitaciones.Nombre = TiposHabitacion.Nombre
WHERE Hoteles.Localidad= 'localidad' AND
Hoteles.Categoria= 'categoria' AND
TiposHabitacion.Nombre= 'habitacion'
ORDER BY Nombre
SELECT Nombre, Icono
FROM Hoteles
INNER JOIN Habitaciones
INNER JOIN TiposHabitacion
ON Hoteles.Nombre = Habitaciones.Nombre
ON Habitaciones.Nombre = TiposHabitacion.Nombre
WHERE Hoteles.Localidad= 'localidad' AND
Hoteles.Categoria= 'categoria' AND
TiposHabitacion.Nombre= 'habitacion'
ORDER BY Nombre