在PostgreSql中有关联的子句

时间:2017-08-16 05:40:33

标签: sql ruby-on-rails postgresql

这是我的关联

$query=$this->db->query("select a.*,b.nama from transaksi a,
                                    anggota b
                                    where a.no_transaksi='$nomor' and a.no_transaksi
                                    not in(select no_transaksi from pengembalian)
                                    and a.nomor_anggota=b.nomor_anggota");

学生联系人表有一个字段primary_contact,它有布尔类型。

我想要没有任何学生联系人的教师学生  学生联系人的primary_contact是假的。

  

e.g

     

教师学生1有3个学生联系人和3个学生   联系人的主要联系人字段为false。比我想要的记录

     

教师学生2有3个学生联系人,其中2个学生   联系人的主要联系人字段是错误的,其他学生联系人   主要联系是真的,我不想要那个记录。

我做了一个查询,但我不知道怎么写有条款。

Instructor has many Instructor Students InstructorStudent has many Student Contacts

任何帮助将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:0)

请试试这个,因为你说你想要InstructorStudent对象,所以你应该加入那张桌子。

InstructorStudent.joins(:student_contacts).where("student_contacts.primary_contact = 
   ?",false)
  .select("student_contacts.instructor_student_id,count(student_contacts.primary_contact) as sc_count")
    .group("student_contacts.instructor_student_id")
    .having("count(student_contacts.primary_contact) = ?",Dynamic_value)