Ruby on rails RoR:PSQL到ruby-.join
我意识到这是一个有点初级的问题,但我站在一堵似乎无法逾越的墙前。我有一个朋友帮我写了这段Postgres代码,现在我正试图把它转换成ruby,我真的不知道该怎么做。我似乎找不到任何关于如何正确订购所有请求的文档 博士后:Ruby on rails RoR:PSQL到ruby-.join,ruby-on-rails,ruby,postgresql,join,psql,Ruby On Rails,Ruby,Postgresql,Join,Psql,我意识到这是一个有点初级的问题,但我站在一堵似乎无法逾越的墙前。我有一个朋友帮我写了这段Postgres代码,现在我正试图把它转换成ruby,我真的不知道该怎么做。我似乎找不到任何关于如何正确订购所有请求的文档 博士后: SELECT assets.id, count(assets_users.asset_id) as the_count FROM assets LEFT OUTER JOIN assets_users ON assets.id = assets_
SELECT
assets.id,
count(assets_users.asset_id) as the_count
FROM assets
LEFT OUTER JOIN assets_users ON assets.id = assets_users.asset_id
WHERE asset_profile_id = 7
GROUP BY assets.id
HAVING count(*) > 0
ORDER BY the_count;
红宝石:
编辑:
新的Ruby代码:
def order_assets
@order = Asset.select("assets.id, count('assets_users.asset_id) as the_count")
.joins("LEFT OUTER JOIN assets_users ON assets.id = assets_users.asset_id")
.group("assets.id")
.having("count(*) > 0").order("the_count")
end
我希望所有黄色的资产都在上面,而那些有用户的资产则在下面填写
以下是等效代码:-
@order = Asset.select("assets.id, count(assets_users.asset_id) as the_count")
.joins("LEFT OUTER JOIN assets_users ON assets.id = assets_users.asset_id")
.where("asset_profile_id = ?", current_asset_profile_id)
.group("assets.id")
.having("count(*) > 0")
.order("the_count")
我如何让它完成所有这些,但是
资产配置文件\u id
是当前的,而不是指定?没有得到您。。你能说得更具体些吗?那么,与其说是。where(asset\u profile\u id:7)
,不如说是如何设置我所在的当前asset\u profile\u id
的位置。例如,。其中(资产配置文件\u id:当前资产配置文件\u id)
。我是否必须删除。where
?此代码似乎与Postgres代码的效果不同。知道为什么吗?让我们来看看。
@order = Asset.select("assets.id, count(assets_users.asset_id) as the_count")
.joins("LEFT OUTER JOIN assets_users ON assets.id = assets_users.asset_id")
.where("asset_profile_id = ?", current_asset_profile_id)
.group("assets.id")
.having("count(*) > 0")
.order("the_count")