Я пытаюсь получить результат из разных таблиц.Нужна помощь в написании запроса, я новичок в MySQL.
У меня есть 1 таблица tbl_opp_details , которая связывает ID's
различных таблиц:
moduleId
из tbl_module
relatedId
содержит ID's
, относящийся к перикулярному модулю из разных таблиц (tbl_account, tbl_contact, ...). На изображении выше
moduleId "1" -> Account (tbl_account)
moduleId "2" -> Contact (tbl_contact)
Теперь я хочу отобразить всю информацию об учетных записях, контактах
moduleId "1" -> Account (tbl_account) relatedTo "1" -> pin_1
moduleId "1" -> Account (tbl_account) relatedTo "2" -> epr_2
tbl_account
tbl_contact
tbl_call_a_log
Нужен запроскоторая объединяет эти таблицы и дает результат.
Update-1: Мой запрос:
SELECT
callLog.oppCallLogId,
callLog.subject,
callLog.comments,
callLog.moduleId,
modules.moduleName,
callLog.relatedTo,
accounts.account,
callLog.createdBy,
callLog.createdDtm,
callLog.updatedBy,
callLog.updatedDtm
FROM tbl_opp_call_log AS callLog
INNER JOIN tbl_module AS modules ON modules.moduleId=callLog.moduleId
INNER JOIN (
SELECT accounts.account FROM tbl_account AS accounts INNER JOIN callLog.relatedTo=accounts.accountId WHERE callLog.moduleId=1)
Выдает ошибку
MySQL сказал: Документация
# 1064 - у вас ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования рядом с '.accountId WHERE callLog.moduleId = 1) LIMIT 0, 25' в строке 16
Update-2:
SELECT
callLog.oppCallLogId,
callLog.subject,
callLog.comments,
callLog.moduleId,
callLog.relatedTo,
accountTbl.account,
callLog.createdBy,
callLog.createdDtm,
callLog.updatedBy,
callLog.updatedDtm
FROM tbl_opp_call_log AS callLog
INNER JOIN (
SELECT accounts.account
FROM tbl_account AS accounts
INNER JOIN tbl_opp_call_log AS callLog ON callLog.relatedTo=accounts.accountId
WHERE callLog.moduleId=1 AND accounts.accountId=callLog.relatedTo) AS accountTbl
ORDER BY callLog.oppCallLogId ASC
Повторный вывод.
Любая помощь приветствуется, заранее спасибо.