Descubra qué ID de grupo contiene todos los atributos relevantes en SQL

ntonces, digamos en este caso, el grupo que tenemos son grupos de animales.

Digamos que tengo las siguientes tablas:

animal_id | attribute_id | animal
----------------------------------
 1        |  1           | dog   
 1        |  4           | dog
 2        |  1           | cat
 2        |  3           | cat
 3        |  2           | fish
 3        |  5           | fish


id | attribute
------------------
 1 | four legs 
 2 | no legs
 3 | feline
 4 | canine
 5 | aquatic

Donde la primera tabla contiene los atributos que definen un animal, y la segunda tabla realiza un seguimiento de lo que es cada atributo. Ahora digamos que ejecutamos una consulta en algunos datos y obtenemos la siguiente tabla de resultados:

attribute_id 
------------
     1
     4

Estos datos describirían un perro, ya que es el único animal_id que tiene los atributos 1 y 4. Quiero poder obtener de alguna manera el animal_id (que en este caso sería 1) basado en la tercera tabla, que es esencialmente una tabla que ya se ha generado que contiene los atributos de un animal.

EDITA

Así que la tercera tabla que tiene 1 y 4 no tiene que ser 1 y 4. Podría devolver 2 y 5 (para peces), o 1 y 3 (gato). Podemos suponer que su resultado siempre coincidirá con un animal por completo, pero no sabemos cuál.

Respuestas a la pregunta(1)

Su respuesta a la pregunta