Tag: sql

显示消息数组中的最后一条消息

关于我上一次尝试的答案 ,我可以实现我想要的。 一旦应用程序正常工作,我发现有些不同之处:只有创建消息并发送消息的人才会显示。 如果我回复,我没有看到答复,我知道问题。 我的消息模型有表: [:id, :user_id, :to, :body, …] :user_id与用于确定创建消息的人类似。 User 1是客户端, User 2是学生。 学生向客户发送消息。 只有我的客户端代码是这样的: #Controller Index: @messages = Message.where(to: current_user.id) # My replies are not included here .order(user_id: :asc, created_at: :desc) .select(‘distinct on (user_id) *’) 我说给我发给我的所有消息( :to )id为1 。 由于:to列,我不会看到我的回复。 我的(客户端)回复如下所示: to: #student id user_id: #client id 和学生留言: to: #client id user_id: […]

Postgres HStore错误 – 未知运算符

我的ruby代码: Portfolio.where(“data @> (:key => :value)”, :key => ‘CSJ’, :value => ‘0.1’) 生成以下SQL: “SELECT \”portfolios\”.* FROM \”portfolios\” WHERE (data @> (‘CSJ’ => ‘0.1’))” 想出这个错误: Error: PG::Error: ERROR: operator does not exist: unknown => unknown LINE 1: …olios”.* FROM “portfolios” WHERE (data @> (‘CSJ’ => ‘0.1’)) HINT: No operator matches the given name and argument type(s). […]

在Postgres的一张巨大的桌子上,Kaminari的COUNT(*)很慢

我正在使用Kaminari gem在大表(~1.5MM行)上分页查询。 虽然获取实际结果页面非常快(~20ms),但kaminari添加了SELECT COUNT(*) WHERE ….非常慢,并且在执行时间上增加了几秒钟。 有没有办法估算结果的数量?

如何迁移现有记录以匹配rails中的新ORM

最近我在我正在构建的应用程序中更改了模型关系。 由于稍后将部署这些更改,因此我需要知道如何将现有数据迁移到新结构。 这感觉就像一个可怕的前景。 我原来的设置是这样的.. 客户有很多地方 一个位置属于一个客户端 然后我创建了一个连接表,以便client has many locations through client_locations 。 所以从旧的数据结构我在locations数据库中有client_id。 如何将这些数据移动到新结构?

Rails中WHERE子句中的ALL运算符

该关联如下所示。 InstructorStudent has_many :fees Fee belongs_to :instructor_student 我希望得到所有给定数组中每月详细信息的教师学生。 如果其中任何一个都没有月度详细信息,那么它不应该返回任何记录。 due_month = [“2017-01-01″,”2017-02-01″,,”2017-03-01”] 以下是我试过的查询,我想获得属于所有给定的三个due_month的InstructorStudent,如果任何月份没有数据那么它应该返回nil : @fee_paid = InstructorStudent.first.joins(:fees).where(“fees.monthly_detail = ALL(ARRAY[?]::date[]) AND fees.course_type = ?”, due_month.map{|i| i },”per month”); 编辑1: @ erwin-brandstetter这是我的最终查询 InstructorStudent.where(” instructor_students.Id IN (?)”,Instructor.find(17).per_month_active_student ).joins( “INNER JOIN fees ON fees.instructor_student_id = instructor_students.id LEFT OUTER JOIN fee_payment_notifications ON fee_payment_notifications.fee_id = fees.id” ).where( “fee_payment_notifications.status ? AND fees.monthly_detail […]

Postgresql ORDER BY空格

假设我有一个包含一列的表,即: 5 absolute 5.0 5.1 last 50 5 elite edge 我需要订购它(使用postgresql方法): 5 absolute 5 elite 5.0 5.1 50 edge last 但如果我使用经典的“ORDER BY列ASC”,我得到: 50 5.0 5.1 5 absolute 5 elite edge last 有很多工具,如substring或using,但我无法理解它们是如何工作的。 我需要做什么?

如何将CSV导入已经分配了ID的postgresql?

我有3个CSV文件,每个文件大约150k行。 他们已经在CSV中获得了ID,并且已经在其中保存了assosciations。 是否有一种简单的方法可以跳过id值的自动分配,而是使用CSV中已有的内容?

使用选择调用的双嵌套连接的Rails活动记录查询

我有以下架构: 照片has many组has many用户。 我使用这个Rails服务器作为iOS应用程序的后端,并且在添加照片时不断需要向组的所有相关用户推送通知。 我的问题是找到最便宜的查询来解决仅受影响的User.ids 。 到目前为止我有 Photo.find(1).groups.joins(:users) 我知道在此之后我必须输入一个select参数,但是无法弄清楚我生活的语法。 鉴于照片,我正在寻找最有效的方法来查找受影响的用户ID的集合。 任何帮助将非常感激!!!

RAILS:如何查询每个关联都具有非null属性的所有对象

我正在研究Rails 3.0.5和PostgreSQL。 我有一个型号Offer ,有很多Products 。 class Offer < ActiveRecord::Base has_many :products end class Product < ActiveRecord::Base belongs_to :offer end 当您在第三方服务中注册时,该产品的ID会更新。 让我们称之为service_id 。 我想要一个优惠范围,它可以获得在第三方服务中注册的每个产品的所有优惠。 换句话说,如果它的所有产品都有服务ID,我只对商品实例感兴趣。 offer范围: joins(:products).where(“products.service_id is not NULL”) ,只返回至少有一个非null产品的商品。 任何帮助,将不胜感激。 (PS:对不起标题,我尽力解释它。) 编辑: 例如:如果我有2个优惠:Offer1和Offer2。 Offer1的产品为p1和p2,Offer2的产品为p3和p4。 假设p1,p2和p3有服务但p4没有服务。 查询应仅返回Offer1。

如何将BIG SQL文件导入rails数据库?

我有一个非常庞大的(> 8mo)sql文件,基本上创建了2个表并用数据填充它们。 这是Sequel Pro生成的转储。 我的第一个想法是逐行读取文件并运行“执行”命令,但是我的错误是我的字符串太大了。 Mysql2 ::错误:有一个大于’max_allowed_pa​​cket’字节的数据包 有没有办法直接运行SQL文件而不是读取它并尝试执行? 仅供参考我可以将这个文件分成2个部分分别用于2个表格,但是我之后会有另一个更大的文件,并且不能分割。 我正在使用Rails 3.0.3与ActiveRecord和MySQL数据库。