Я долго искал и не смог найти ответ на то, что искал. У меня есть следующий запрос:
SELECT DISTINCT o.titulo, o.fecha_estreno
FROM Obra o
WHERE (o.titulo LIKE '%Barcelona%' AND EXISTS(SELECT p.id_obra FROM Pelicula p WHERE p.id_obra = o.id_obra)) OR EXISTS(SELECT DISTINCT pa.id_obra
FROM Participa pa
WHERE pa.id_obra = o.id_obra AND EXISTS(SELECT DISTINCT l.nombre FROM Lugar l
WHERE l.nombre LIKE '%Barcelona%' AND EXISTS(SELECT DISTINCT tl.id_lugar FROM TieneLugar tl
WHERE tl.id_lugar = l.id_lugar AND tl.id_profesional = pa.id_profesional))) OR EXISTS(SELECT DISTINCT er.id_obra
FROM EstaRelacionado er
WHERE er.id_obra = o.id_obra AND EXISTS(SELECT DISTINCT k.keyword
FROM Keywords k
WHERE k.id_keyword = er.id_keyword AND k.keyword LIKE '%Barcelona%'));
Что он в основном делает, так это ищет каждый фильм в моей базе данных, который каким-то образом связан с городом, который он получает. Я хотел, чтобы в каждом столбце отображался третий столбец с указанием причины, по которой строка отображает результат (например, «TITLE СОДЕРЖИТ ЭТО» или «ACTOR FROM MORIE BORN THERE THERE» и т. Д.)
Спасибо за ваше терпение и помощь!
РЕДАКТИРОВАТЬ: Как предлагается, вот несколько примеров вывода. В столбце должна отображаться только первая причина, связанная с фильмом:
TITULO FECHA_ESTRENO CAUSE
---------- ---------------- ----------
Barcelona mia 1967 TITLE