Mysql 子查询&;具有不同条件的不同表上的联接

Mysql 子查询&;具有不同条件的不同表上的联接,mysql,join,subquery,conditional,Mysql,Join,Subquery,Conditional,我试图从不同的表格中得到一个结果。需要一些帮助来编写查询,我是MySQL新手 我有一个表tbl\u opp\u详细信息,包含不同表的ID: moduleIdfromtbl\u模块 relatedId包含不同表(tbl_账户、tbl_联系人等)中与特定模块相关的ID。 在上图中 moduleId "1" -> Account (tbl_account) moduleId "2" -> Contact (tbl_contact) 现在我想显示有关帐户、联系人的所有信息 moduleI

我试图从不同的表格中得到一个结果。需要一些帮助来编写查询,我是MySQL新手

我有一个表tbl\u opp\u详细信息,包含不同表的
ID

moduleId
from
tbl\u模块

relatedId
包含不同表(tbl_账户、tbl_联系人等)中与特定模块相关的
ID
。 在上图中

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_账户

tbl_触点

待定呼叫日志

需要一个连接这些表并给出结果的查询

更新-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附近,其中callLog.moduleId=1)第16行的限制为0,25

更新-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
它重复输出


欢迎任何帮助,提前感谢。

StackOverflow不是免费的编码服务。请更新您的问题,以显示您已在某个应用程序中尝试过的内容。有关更多信息,请参见并记下:)您应该编写两个查询,一个在
moduleId=1
时与
tbl\u帐户连接,另一个在
module\u Id=2
时与
tbl\u联系人连接。然后你可以将它们与
UNION
结合,并与
tbl\u call\u a\u log
结合@Barmar你能举个例子吗?你为什么要与
tbl\u opp\u call\u log
结合两次?对于第一次加入,您没有
ON
子句,因此它会进行完整的叉积。为什么
tbl\u模块不在您的查询中?StackOverflow不是免费的编码服务。请更新您的问题,以显示您已在某个应用程序中尝试过的内容。有关更多信息,请参见并记下:)您应该编写两个查询,一个在
moduleId=1
时与
tbl\u帐户连接,另一个在
module\u Id=2
时与
tbl\u联系人连接。然后你可以将它们与
UNION
结合,并与
tbl\u call\u a\u log
结合@Barmar你能举个例子吗?你为什么要与
tbl\u opp\u call\u log
结合两次?对于第一个联接,您没有
ON
子句,因此它是一个完整的叉积。为什么
tbl\u模块不在您的查询中?