Rails4如何使用mysql数据库进行外连接

时间:2015-03-08 12:48:29

标签: ruby-on-rails ruby-on-rails-4

我有2张桌子。公司有一个或多个账户。

我想列出所有公司,同时列出公司的所有帐户。但有时公司还没有帐户。

基本上我需要。

Company Name | Account Name | Mobile

Company 1 | John | 91234567

Company 1 | Peter | 91234567

Company 2 | Nil | Nil

我知道我需要的是一个外连接,但显然mysql不支持,然后我发现我可以使用union,但我不知道如何在rails中这样做。我目前的代码是

Company.joins(:accounts)

请指教。提前谢谢。

2 个答案:

答案 0 :(得分:0)

Company.joins("LEFT JOIN accounts ON accounts.id = companies.account_id")

或者

Company.find(:all,
   joins: "LEFT JOIN accounts ON accounts.id = companies.account_id",
   select: "companies.name, accounts.id, accounts.mobile ")

答案 1 :(得分:0)

您可以使用包含和引用来完成此任务:

Company.includes(:accounts).references(:accounts)