Consulta SQL de muchos a muchos para seleccionar todas las imágenes etiquetadas con ciertas palabras

Tengo 2 tablas en Postgres:

CREATE TABLE "images" (
    "id" serial NOT NULL PRIMARY KEY,
    "title" varchar(300) NOT NULL,
    "relative_url" varchar(500) NOT NULL)

CREATE TABLE "tags" (
    "id" serial NOT NULL PRIMARY KEY,
    "name" varchar(50) NOT NULL)

Para establecer una relación de muchas a muchas entre imágenes y etiquetas, tengo otra tabla como:

CREATE TABLE "tags_image_relations" (
    "id" serial NOT NULL PRIMARY KEY,
    "tag_id" integer NOT NULL REFERENCES "tags" ("id") DEFERRABLE INITIALLY DEFERRED,
    "image_id" integer NOT NULL REFERENCES "images" ("id") DEFERRABLE INITIALLY DEFERRED)

Ahora tengo que escribir una consulta como " seleccione relative_url de todas las imágenes etiquetadas con 'apple' y 'microsoft' y 'google' "

¿Cuál puede ser la consulta más optimizada para esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta