Я использую пример базы данных, которую я получил через DBeaver. Он содержит таблицу с именем Artists и таблицу с названием Albums. У некоторых артистов нет альбомов, у некоторых есть один, а у других их много.
То, чего я пытаюсь добиться, - это объединение влево, чтобы показать всех исполнителей, но отобразить только имя альбома исполнителей, у которых только один альбом.
Следующее работает с использованием DBeaver, но не работает, если выполняется непосредственно из MS Access (что мне нужно сделать):
SELECT
ar.AName,
al.title
FROM
Artist ar
LEFT JOIN (
SELECT
al.*
FROM
album al
INNER JOIN (
SELECT
artistid,
COUNT( artistid ) artistCount
FROM
album
GROUP BY
artistid ) alc ON
alc.artistid = al.artistid
AND alc.artistcount = 1 ) al ON
al.artistid = ar.artistid
ORDER BY
ar.aname
Таблицы имеют следующие столбцы:
Artist
ArtistID (Key)
Name
Album
AlbumID (Key)
Title
ArtistID
Большое спасибо заранее. Я не могу найти ответ на это нигде. Я понимаю, что версия SQL, используемая в MS Access, не такая, как в других вариантах
Приветствия
Patrick