Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/10/2009, 03:31
OscarPe
 
Fecha de Ingreso: octubre-2009
Mensajes: 1
Antigüedad: 14 años, 6 meses
Puntos: 0
Exclamación Complicacion con un select

Buenas a todos,

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:
SELECT id, nombre FROM trabajos 
WHERE area_id IN (SELECT areas_ids FROM presentaciones WHERE id = 1);
Y esta consulta solo me devuelve:
[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:
SELECT id, nombre FROM trabajos WHERE area_id IN (1,2);
si que me devuelve
[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?