我有一个包含表Exchanges、Company和Company_Listings的数据库。
Exchanges table
name
full_name
Companies table
name
full_name
exchange_id
Company_Listings table
company_id
exchange_id
company_code
option_name
[...] other columns如果上市是一家公司,它将有一个company_code,如必和必拓,如果它是一个公司选项,它将有一个option_name,如BHPXX,但没有company_code。两家公司都通过company_id链接到“破碎的希尔比利顿有限公司”。
Exchanges model
has_many :companies, dependent: :destroy
has_many :company_listings, dependent: :destroy
Companies Model
belongs_to :exchange
has_many :company_listings,
Company_Listing Model
belongs_to :company
belongs_to :exchange
default_scope { order('exchange_id ASC', 'company_code ASC', 'option_name ASC') }默认范围命令公司上市,如必和必拓,CBA .BHPXX。
我试图得到这类,以便它给必和必拓,BHPXX,CBA。任何感激的帮助。
发布于 2014-03-28 03:08:10
试试这个:
default_scope { order('company_code ASC', 'option_name ASC', 'exchange_id ASC')
如果由于空值不起作用,您可能需要在这里查看它是如何完成的:
ORDER BY ASC with Nulls at the Bottom
MySQL Orderby a number, Nulls last
default_scope { order('-company_code DESC', '-option_name DESC', 'exchange_id ASC')
编辑:在这里,考虑到company_code和option_name本质上不是数字的,所以上面的链接可能不起作用,但是链接提供了很多其他的方法来做到这一点。
https://stackoverflow.com/questions/22701500
复制相似问题