Tengo una base de datos de habitaciones y equipos. Deseo consultar la base de datos y devolver una lista de habitaciones con, p. tv, radio, satélite y nevera (eq1, eq2, eq3, ...., eqN).Consulta con múltiples EXIST
tengo la siguiente instrucción SELECT:
select * from rooms r where
exists (select id from equipments where eq_id='eq1' and room_id=r.id)
and
exists (select id from equipments where eq_id='eq2' and room_id=r.id)
and
exists (select id from equipments where eq_id='eq3' and room_id=r.id)
.......
and
exists (select id from equipments where eq_id='eqN' and room_id=r.id)
¿Hay alguna manera de optimizar o hacer este corto?
Devolverá también las filas para las cuales count (id)> = 2 simplemente debido a filas con eq1 (y puede que no tenga filas con eq_id = 'eq2') ..es decir, no funciona – Unreason
Sí, claro, pero si la combinación "id + eq_id" es única, funcionará – vmg
@Vitaly, pero lo más probable es que no, lo más probable es que eq_id es id del tipo de equipo y yo diría que es es más probable que sea posible tener varias instancias del mismo tipo de equipo en una habitación. Podría estar equivocado, pero diría que mi suposición es más segura ... :) – Unreason