gpt4 book ai didi

ruby-on-rails - 我如何在 Rails 查找中进行左连接

转载 作者:太空宇宙 更新时间:2023-11-03 17:08:13 24 4
gpt4 key购买 nike

我有这个

User.joins(:notifications).joins(:company_users).joins(:role_users).where("notifications.id = ? AND role_users.role_id != '1' AND (company_users.company_id = ? OR users.company_id = ?)", notification.id, p.company_id, p.company_id)

=> []

产生这个sql

SELECT `users`.* FROM `users` 
INNER JOIN `subscriptions` ON `users`.`id` = `subscriptions`.`user_id`
INNER JOIN `notifications` ON `notifications`.`id` = `subscriptions`.`notification_id`
INNER JOIN `company_users` ON `company_users`.`user_id` = `users`.`id`
INNER JOIN `role_users` ON `role_users`.`user_id` = `users`.`id`
WHERE (notifications.id = 1
AND role_users.role_id != '1'
AND (company_users.compcany_id = 67 OR users.company_id = 67))

问题是我需要加入 company_users 并且不确定如何在 rails 中实现它

我知道我可以用 find_by_sql 做到这一点,因为我听说那不是真正的 rails ......任何想法

最佳答案

已解决

User.joins(:notifications).joins("LEFT JOIN `company_users` ON `company_users`.`user_id` = `users`.`id`").joins(:role_users).where("notifications.id = ? AND role_users.role_id != '1' AND (company_users.company_id = ? OR users.company_id = ?)", notification.id, p.company_id, p.company_id)

关于ruby-on-rails - 我如何在 Rails 查找中进行左连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10722106/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com