Допустим, у меня есть схема данных опроса, моя таблица фактов представляет каждого человека, отвечающего на этот опрос, в одной из таблиц измерений есть все ответы на опрос, что является наиболее эффективным способом получения всех записей из таблицы фактов, котораясопоставить несколько условий в таблице ответов?
FACT TABLE (записи):
| id | name | date | gender |
DIMENSION TABLE (ответы):
| record_id | question_id | value |
Я мог бы сделать новую левуюприсоединяйтесь к каждому вопросу, но это кажется очень неэффективным, если я хочу найти запись, которая ответила на несколько вопросов
SELECT * FROM records r
left join answers a on r.id = a.record_id
left join answers a2 on r.id = a2.record_id
where (a.question_id = 1 and a.value = 2)
and (a2.question_id = 3 and a2.value = 1);
Есть ли альтернатива этому?