加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – rails union hack,如何一起拉两个不同的查询

发布时间:2020-12-12 16:34:01 所属栏目:MsSql教程 来源:网络整理
导读:我有一个查询,搜索同一个表中的两个单独的字段…寻找最有可能是特定城市的地点,但也可能是一个国家,即需要两个字段. 表格如下所示: Country CityGermany AachenUSA AmarilloUSA Austin 结果: Keyword SideinfoAachen GermanyUSA CountryAustin USAGermany C
我有一个查询,搜索同一个表中的两个单独的字段…寻找最有可能是特定城市的地点,但也可能是一个国家,即需要两个字段.

表格如下所示:

Country    City

Germany    Aachen
USA        Amarillo
USA        Austin

结果:

Keyword   Sideinfo

Aachen    Germany
USA       Country
Austin    USA
Germany   Country

基本上我想知道是否有一个更简洁的方式来做到这一点,因为我不得不使用两个单独的查询,然后将它们添加在一起,排序等(这是正常的):

def self.ajax(search)
    countries = Location.find(:all,:select=> 'country AS keyword,"Country" AS sideinfo',:joins => :hotels,:conditions => [ 'hotels.email IS NOT NULL AND country LIKE ?',"#{search}%" ],:group => :country )
    cities = Location.find(:all,:select=> 'city AS keyword,country AS sideinfo',:conditions => [ 'hotels.email IS NOT NULL AND city LIKE ?',:group => :city )
    out = cities + countries
    out = out.sort { |a,b| a.keyword <=> b.keyword }
    out.first(8)
  end

我找不到任何关于如何使用ActiveRecord工会的信息…

解决方法

使用ActiveRecord不可能实现UNION查询.所以有两个解决方案:

>使用find_by_sql根据需要构建查询.我不会建议
>使用像union这样的插件来做一个UNION sql查询.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读