SQL - Ayuda con consulta SQL

 
Vista:
sin imagen de perfil

Ayuda con consulta SQL

Publicado por Rodrigo (1 intervención) el 29/10/2017 06:52:19
Hola a todos,

tengo un schema en PostgreSQL compuesto por las siguientes relaciones:

NIÑO (niño_id, niño_nombre, fecha_nacimiento, genero, direccion, ciudad) donde niño_id es la clave primaria.
HERMANO (niño_id1, niño_id2) donde niño_id1 y niño_id2 forman la clave primaria y son claves foráneas de NIÑO. Cada pareja de hermanos tiene dos filas en la tabla. Por ejemplo, si el niño con el identificador 1 es hermano del niño con identificador 2 existirán dos filas: (1,2) y (2,1).
CARTA (carta_id, fecha_llegada, numero_juguetes, niño_id) donde carta_id es la clave primaria y niño_id es clave foránea de NIÑO.
JUGUETE (juguete_id, juguete_nombre, precio, tipo_juguete, fabricante) donde juguete_id es la clave primaria.
JUGUETE PEDIDO (carta_id, juguete_id) donde carta_id y juguete_id forman la clave primaria y carta_id es clave foránea de CARTA y juguete_id es clave foránea de JUGUETE.

Me piden que genere la siguiente consulta:

"Genere una consulta que devuelva el identificador del niño, su nombre y su fecha de nacimiento de aquellos niños que han pedido un juguete pedido también por uno de sus hermanos."

No tengo muy claro cómo hacer esta consulta, a lo máximo que llego es a lo siguiente, pero no sé exactamente como asociar los juguetes pedidos de un niño con los de su hermano.

SELECT DISTINCT c.niño_id, c.niño_nombre, c.fecha_nacimiento
FROM (NIÑO c NATURAL JOIN CARTA l) NATURAL JOIN JUGUETE PEDIDO w
WHERE w.toy_id IN (SELECT w1.toy_id
FROM (CARTA l1 JOIN HERMANO s ON l1.niño_id=s.niño_id2) NATURAL JOIN
JUGUETE PEDIDO w1)
AND c.niño_id IN (SELECT s1.niño_id1
FROM HERMANO s1);

¿Puede alguien ayudarme por favor?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder