【问题标题】:Skip record from one table if record has associatied record in other table如果记录在另一表中有关联记录,则从一个表中跳过记录
【发布时间】:2017-05-18 07:29:39
【问题描述】:

如果使用 sequelize 在其他表中存在关联记录,如何跳过该记录?不要在记录上使用循环。 示例:我们有两个表 UserProperty,用户与 Property 相关联(有一个关系)。 我想在 User 表中找到所有那些用户记录在 Property 表中没有关联数据的记录。(即用户在 Property 中没有任何关联数据 所以不能这样做 Property.user_id = User.id) 我想通过 Sequelize 实现这一目标。

【问题讨论】:

    标签: mysql node.js express sequelize.js


    【解决方案1】:

    您可以在查询中使用NOT EXISTS来查找此类记录,例如:

    SELECT u.* 
    FROM users u
    WHERE NOT EXISTS (
      SELECT * FROM property WHERE user_id = u.id
    );
    

    另一种方法是使用LEFT JOIN,例如:

    SELECT u.*
    FROM users u LEFT JOIN property p ON u.id = p.user_id
    WHERE p.id IS NULL;
    

    【讨论】:

    • 你能写下我如何将这个查询转换成sequelize吗?
    • 对不起,Darshan,我在续集而不是原始查询中需要它。这个查询在我的情况下不起作用。谢谢
    • 您可能可以将原始查询转换为续集?此外,查询是否没有给您预期的输出或抛出错误?
    猜你喜欢
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-21
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多