簡體   English   中英

在兩個表中搜索查詢

[英]Search Query in two table

我想在兩個表(users.name,users.email,object.name)中搜索查詢,當我鍵入:

 def self.search(query)
    query = "%#{query}%"
    where("(name like ? or email like ?  or surname like ?)", query, query, query)
  end

它工作正常,但是現在我想添加下一個字段以從其他表中搜索

def self.search(query)
        query = "%#{query}%"
        joins(:object).where("(objects.name like ? or name like ? or email like ?  or surname like ?)", query, query, query, query)
      end

錯誤:

`User Load (0.2ms)  SELECT  `users`.* FROM `users`  WHERE `users`.`id` = 120  ORDER BY `users`.`id` ASC LIMIT 1
   (1.2ms)  SELECT COUNT(*) FROM `users` INNER JOIN `objects` ON `objects`.`id` = `users`.`object_id` WHERE ((objects.name like '%ver%' or email like '%ver%' or name like '%ver%' or surname like '%ver%'))
Mysql2::Error: Column 'name' in where clause is ambiguous: SELECT COUNT(*) FROM `users` INNER JOIN `objects` ON `objects`.`id` = `users`.`object_id` WHERE ((objects.name like '%ver%' or email like '%ver%' or name like '%ver%' or surname like '%ver%'))
Completed 500 Internal Server Error in 6ms
`

我的模特

User belongs_to :object
Object has_many :users

如何添加其他表格?

您還應該指定第二個名稱表:

def self.search(query)
  query = "%#{query}%"
  joins(:object).where("(objects.name like ? or users.name like ? or email like ?  or surname like ?)", query, query, query, query)
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM