Основная проблема, которую, я думаю, вы заметили, заключается в том, что если вы рассматриваете факультет как основу для своего соединения, то нет никакого способа присоединиться к узлам присутствия. И наоборот, если вы будете рассматривать Присутствие как основу, то вы не увидите способностей, у которых нет номера присутствия.
Нет простого способа, используя вашу текущую структуру, чтобы сделать эти объединения в представлениях.
Я бы сказал, что ваш самый простой вариант - удалить поле «node-reference-faculty» из узла присутствия и добавить поле «node-reference-faculation» для факультета. Поскольку поля CCK могут иметь несколько значений, у вас все равно может быть правильное отношение «один ко многим».
Единственным недостатком этого является то, что тогда вам нужно управлять отношениями присутствия и способности из узлов факультета вместо узлов присутствия. Если это ограничитель показа, который может зависеть от вашего рабочего процесса, вы можете использовать ОБА поля для ссылки на узел и использовать такой модуль, как http://drupal.org/project/backreference, чтобы синхронизировать их.
Как только у вас появится рекомендация от факультета -> присутствие, вам нужно будет добавить связь в Views. Точно так же, как добавление поля или фильтра, откройте список отношений и найдите его для своего поля ссылки на узел.
Далее вам нужно будет добавить аргумент для идентификатора периода и настроить его на использование идентификатора узла из URL. Ключевым моментом является то, что когда вы добавляете аргумент, он спрашивает, какое отношение использовать в его параметрах. Вы захотите сказать ему, чтобы использовать только что добавленные отношения присутствия.
Вам не нужно делать подзапрос в вашем SQL таким образом. Это должно быть то же самое, и MySQL не будет пытаться создать временную таблицу. Я упоминаю об этом, потому что вы действительно не можете делать подзапросы в Views, если вы не пишете очень специальный обработчик Views, но в этом случае вам не нужен подзапрос в любом случае.
Ex.
SELECT f.name, p.presence_number
FROM Faculty AS f
LEFT JOIN Presence AS p ON f.id=p.Faculty_id
WHERE p.Period_id=1;