Mysql 子查询&;具有不同条件的不同表上的联接
我试图从不同的表格中得到一个结果。需要一些帮助来编写查询,我是MySQL新手 我有一个表tbl\u opp\u详细信息,包含不同表的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
ID
:
moduleId
fromtbl\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模块不在您的查询中?