tengo una consulta que me esta complicando bastante la existencia :P os comento:
Tengo tres tablas:
PRESENTACIONES
- id
- nombre
- areas_ids
AREAS
- id
- nombre
TRABAJOS
- id
- nombre
- area_id
Bien imaginemos que tenemos los siguientes datos en las tablas
PRESENTACIONES
[1] [Presentacion Prueba] [1,2]
AREAS
[1] [AREA UNO]
[2] [AREA DOS]
[3] [AREA TRES]
TRABAJOS
[1] [TRABAJO UNO] [1]
[2] [TRABAJO DOS] [2]
[3] [TRABAJO TRES] [3]
Bien pues quiero hacer un select de los trabajos que esten asociados a las areas asociadas a la presentacion de prueba, es decir todos los trabajos asociados a las areas 1 y 2 en este caso.
la consulta que actualmente tengo es:
Código:
Y esta consulta solo me devuelve: SELECT id, nombre FROM trabajos WHERE area_id IN (SELECT areas_ids FROM presentaciones WHERE id = 1);
[1] [TRABAJO UNO]
en vez de devolverme:
[1] [TRABAJO UNO]
[2] [TRABAJO DOS]
Pero sin embargo si hago la consulta directamente sin el segundo select:
Código:
si que me devuelveSELECT id, nombre FROM trabajos WHERE area_id IN (1,2);
[1] [TRABAJO UNO]
[2] [TRABAJO DOS]
Supongo que sera por que el valor que devuelve el segundo select lo toma como un solo valor y no como una de valores separados por comas. Se que podria hacerlo en dos consultas desde el codigo y estaria solucionado, pero el problema es que lo necesito hacer todo en una sola consulta.
Podeis ayudarme u orientarme en como resolverlo?