Я связываю три таблицы из системы MedWatch FDA, которые имеют общее поле Индивидуальный отчет о безопасности (ISR).Три таблицы: «Демография» (уникальная запись), «Наркотики» (уникальная запись, но связанная с «Демографией») и «Реакции» (одна или несколько записей, каждая из которых связана либо с «Наркотиками», либо с «Демографией»).
Мой вопросзаключается в том, что поскольку Reactions.ISR может быть ВНУТРЕННИМ присоединен либо к таблице «Наркотики», либо к таблице «Демография», есть ли предпочтительный способ?
Например, может быть:
SELECT Demographics.Case, Demographics.ISR, Drugs.DrugName, Reactions.PT
FROM (Reactions INNER JOIN Drugs ON Reactions.ISR = Drugs.ISR)
INNER JOIN Demographics ON Drugs.ISR = Demographics.ISR
, который связывает демографические данные<- Drugs <- Иерархия реакций </p>
или:
SELECT Demographics.Case, Demographics.ISR, Drugs.DrugName, Reactions.PT
FROM Reactions INNER JOIN (Drugs INNER JOIN Demographics ON Drugs.ISR = Demographics.ISR)
ON Reactions.ISR = Demographics.ISR
, которая независимо связывает запись о наркотиках и записи о реакциях с записью Демография.
Оба возвращаюттот же набор записей, но мне было интересно, предпочтительнее ли один метод перед другим, возможно, чтобы запрос выполнялся быстрее.т.е. можно ли улучшить производительность запроса, изменив последовательность JOIN?