Ruby on Rails加入缺少的查询行

时间:2017-02-27 21:28:45

标签: ruby-on-rails

你好我正在工作RUBY ON RAILS项目我有问题,我有两个表名   - 停车场  - 汽车 在停车场:

id | place_name | no_of_places

1 | A | 2

2 | B | 3

3 | C | 4

4 | D | 2

在汽车表中:

id | car_no | parking_id

1 | 12 | 1

2 | 15 | 3

3 | 16 | 2

4 | 18a | 3

5 | 45v | 1

6 | 65f | 2

加入表格查询:detail = Parking.joins(:cars).select('parking_id, place_name, no_of_places, count(parking_id) as Alloted, no_of_places - count(parking_id) as Remaining').group('place_name')

结果:

place_name | no_of_places |分配|剩余的

A | 2 | 2 | 0

B | 3 | 2 | 1

C | 4 | 2 | 2

所以我的问题是在加入两个表并进行一些计算时我错过了一些行,我也想要显示它们。我现在必须做什么。

2 个答案:

答案 0 :(得分:0)

您可以像{{1}}

一样查询

答案 1 :(得分:0)

joins将进行内部联接,并在没有车辆的情况下停止停车记录。

相反,你能做includes吗?或.left_outer_joins

detail = Parking.left_outer_joins(:cars).
         select('parking_id, place_name, no_of_places, count(parking_id) as Alloted, no_of_places - count(parking_id) as Remaining').
         group('place_name')