Как показано ниже в таблице Recording
содержит три внешних ключа, только один из которых будет заполнен для любой одной записи.Мой вопрос заключается в том, как я могу отформатировать оператор выбора в Access, который будет извлекать только имена из соответствующей таблицы с учетом внешнего ключа для этой таблицы?
Я пытался использовать IIf, который работает при проверке, какой внешний ключ являетсяНе Null после SELECT:
SELECT Recording.[idRecording],
IIf(Recording.[Artist_idArtist] Is Not Null,
Artist.[artName] ,
IIf(Recording.[Band_idBand] is Not Null,
Band.[bName],
Composer.[cName]))
FROM ...
Но если после оператора FROM задать условия для получения правильного JOIN, это приведет к ошибке:
FROM
IIf(Recording.[Artist_idArtist] Is Not Null,
Artist INNER JOIN Recording ON Recording.[Artist_idArtist] = Artist.[idArtist],
IIf(Recording.Band_idBand Is Not Null,
Band INNER JOIN Recording ON Recording.[Band_idBand] = Band.[idBand],
Composer INNER JOIN Recording ON Recording.[Composer_idComposer] = Composer.[idComposer]));
Я новичок в этомтак что я, вероятно, упускаю что-то очевидное или ошибаюсь.Я полагаю, что я закончил здесь Эксклюзивной Аркой?Я не уверен, что это даже хороший дизайн, я подумал о том, чтобы списать таблицу записи и просто добавить внешние ключи в Track.
Для справки приведем схему отношений: