Вы сказали, что вам нужно ВНУТРЕННЕЕ СОЕДИНЕНИЕ среди трех таблиц, но ваш запрос выполняет ЛЕВОЕ СОЕДИНЕНИЕ между двумя и пытается выполнить другое соединение в предложении WHERE, не ссылаясь на эту таблицу в предложении FROM.
Чтобы просто исправить запрос:
SELECT *
FROM service_notes_details snd, ar_notes arn
INNER JOIN customer_service_xref csx ON arn.customer_service_xref_id = csx.id_number
WHERE arn.visit_date = snd.date_of_visit
Это то, что вы должны использовать в текущем синтаксисе SQL:
SELECT *
FROM ar_notes arn
INNER JOIN customer_service_xref csx ON arn.customer_service_xref_id = csx.id_number
INNER JOIN service_notes_details ON arn.visit_date = service_notes_details.date_of_visit
Для ясности, это будет возвращать только строки в ar_notes
, которые имеют соответствующие значения в customer_service_xref
(присоединение customer_service_xref_id
) и service_notes_details
(присоединение visit_date
).Ваш исходный запрос с использованием LEFT JOIN
вернет строки из ar_notes
, даже если не было совпадения customer_service_xref_id
.