为了账号安全,请及时绑定邮箱和手机立即绑定

suiteCRM 中的 JOIN 子查询错误 40

suiteCRM 中的 JOIN 子查询错误 40

泛舟湖上清波郎朗 2023-08-05 11:08:07
使用与 SugarCRM 连接的 suiteCRM 查询,我需要检索具有特定用户和客户端 ID 的所有机会,因为客户端 ID (account_id) 不可查询(至少不能直接查询)。所以这意味着我不能使用这样的语法: session: await CRMAuth.getSession(),  modules: CRM_MODULES.OPPORTUNITY,  query: `assigned_user_id = '${uid}' AND account_id = '${client_id}'`,  order_by: 'date_modified DESC',  offset: 0,  select_fields: [    'id',    'name',  ],  link_name_to_fields_array: [],  max_results: 100,  deleted: false,但我应该有这样的查询:  session: await CRMAuth.getSession(),  modules: CRM_MODULES.OPPORTUNITY,  query: `opportunities.assigned_user_id = '${uid}' AND opportunities.id IN (          SELECT opportunity_id FROM accounts_opportunities r          JOIN accounts a ON (r.account_id = a.id)          WHERE a.id = '${account_id}'          AND r.deleted=0 and a.deleted=0)`,  order_by: 'date_modified DESC',  offset: 0,  select_fields: [     'id',     'name',  ],  link_name_to_fields_array: [],max_results: 100, 删除: false,我尝试了不同的变体,例如模块/表名称中的大写字母,并在“r”、“a”之前添加 AS(甚至我用全名替换了它们)。我也尝试了更简单的查询,但仍然遇到相同的错误。另外看看类似的问题,我可以保证这不是会话问题,而是语法问题。
查看完整描述

1 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

我的两个错误是:

  • 颠倒关联模块

  • 使用 get_entry_list 方法而不是 get_relationships (此方法要求不同的参数)

获取关系

所以我最终得到了这个结构

let response = await CRM(CRM_METHODS.GET_RELATIONSHIPS, {

  session: await CRMAuth.getSession(),

  module_name: CRM_MODULES.ACCOUNTS,

  module_id: '${client_id}',

  link_field_name: `opportunities`,

  related_module_query:`opportunities.assigned_user_id = '${uid}'`,

  related_fields: [*the fields i want*],

  related_module_link_name_to_fields_array:[],

  deleted: 0,

});

请注意:模块(机会、帐户等)没有 ID,“module_id”字段是您正在使用的记录的 ID,在我的例子中是我的客户的 ID。


这为我带来了特定用户为特定客户创造的所有机会


查看完整回答
反对 回复 2023-08-05
  • 1 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信