Я застрял в этой ошибке, и связанные с этим вопросы, найденные здесь, на SO не помогли мне увидеть свет по этому запросу:идентификатор с несколькими частями не может быть связан - внутреннее соединение 5 таблиц - без подзапросов
SELECT
EventID = a.EventID
,PositionID = a.PositionID
,SubscriberID = a.SubscriberID
,EventTitle = a.EventTitle
,Frequency = a.Frequency
,DueDate = a.DueDate
,NoticeDate = a.NoticeDate
,SubscriberName = e.SubscriberName
,PositionTitle = d.PositionTitle
,UserID = c.UserID
,UserName = c.UserName
,BackupUserID = b.BackupUserID
FROM
dbo.tblEvent a JOIN
dbo.PositionPeople b JOIN
dbo.UserInfo c JOIN
dbo.Position d JOIN
dbo.Subscriber e
ON
a.PositionID = b.PositionID AND
a.SubscriberID = b.SubscriberID AND
b.IncumbentUserID = c.UserID AND
a.SubscriberID = c.SubscriberID AND
a.SubscriberID = e.SubscriberID AND
a.PositionID = d.PositionID
Я не смешиваю неявные и явные JOINs и не использую подзапрос, как это было предложено другими потоками в этом разделе. Я получаю эту ошибку для всех, следующих за предложением ON (кроме e.SubscriberID и d.PositionID). Я пробовал несколько вариантов, и я не вижу проблемы.
Да, действительно. Конечно, это помогло. Я думаю, что я вижу правило, касающееся синтаксиса JOIN, о котором я ранее не знал. Большое спасибо. –
Существует множество решений, когда речь идет о структуре запросов, но это не единственная проблема, но я считаю ее более читаемой, чем определение условий JOIN в предложении WHERE. И, используя эту структуру, вы избегаете многих ошибок в условиях соединения ;-) –