基于ExpressJS的Sequelize ORM嵌套查询:通过accountId获取关联enquires列表
关联查询获取指定Account的Enquires列表
假设你的表结构外键关系如下:
leads表包含account_id(关联accounts表的id)enquires表包含lead_id(关联leads表的id)
你可以通过多表JOIN查询,根据指定的accountId获取所有关联的enquires:
方式1:仅返回有对应Enquires的数据(INNER JOIN)
这种方式会过滤掉没有关联Enquires的Leads,只返回存在关联关系的Enquires记录:
SELECT e.* FROM accounts a INNER JOIN leads l ON a.id = l.account_id INNER JOIN enquires e ON l.id = e.lead_id WHERE a.id = :accountId;
方式2:返回所有关联Leads的Enquires(含无Enquires的情况,字段为NULL)
如果需要包含该Account下所有Leads对应的Enquires(即使某个Lead没有Enquires,会返回NULL值),可以使用LEFT JOIN:
SELECT e.* FROM accounts a INNER JOIN leads l ON a.id = l.account_id LEFT JOIN enquires e ON l.id = e.lead_id WHERE a.id = :accountId;
注意事项
- 将查询语句中的
:accountId替换为你要查询的实际账户ID值 - 确保外键字段名与你的实际表结构匹配(比如如果外键是
accountId而非account_id,需对应修改JOIN条件) - 若需要同时获取账户或线索的信息,可调整SELECT子句,例如:
SELECT a.name AS account_name, l.title AS lead_title, e.*
内容的提问来源于stack exchange,提问作者k3sha7
相关产品推荐
相关产品推荐

