Skip to content

Instantly share code, notes, and snippets.

@sfentress
Created April 7, 2017 20:35
Show Gist options
  • Save sfentress/5bea1bf53aa003ebb3e2ac9571bc8893 to your computer and use it in GitHub Desktop.
Save sfentress/5bea1bf53aa003ebb3e2ac9571bc8893 to your computer and use it in GitHub Desktop.

Filtering on school alone (students in school 1 or 2)

SELECT `report_learners`.* FROM `report_learners` WHERE `report_learners`.`school_id` IN (1,2)

Filtering on permission form alone (students who signed 1 or 2)

SELECT `report_learners`.`id` AS t0_r0, `report_learners`.`learner_id` AS t0_r1,
 `report_learners`.`student_id` AS t0_r2, `report_learners`.`user_id` AS t0_r3,
 `report_learners`.`offering_id` AS t0_r4, `report_learners`.`class_id` AS t0_r5,
 `report_learners`.`last_run` AS t0_r6, `report_learners`.`last_report` AS t0_r7,
 `report_learners`.`offering_name` AS t0_r8, `report_learners`.`teachers_name` AS t0_r9,
 `report_learners`.`student_name` AS t0_r10, `report_learners`.`username` AS t0_r11,
 `report_learners`.`school_name` AS t0_r12, `report_learners`.`class_name` AS t0_r13,
 `report_learners`.`runnable_id` AS t0_r14, `report_learners`.`runnable_name` AS t0_r15,
 `report_learners`.`school_id` AS t0_r16, `report_learners`.`num_answerables` AS t0_r17,
 `report_learners`.`num_answered` AS t0_r18, `report_learners`.`num_correct` AS t0_r19,
 `report_learners`.`answers` AS t0_r20, `report_learners`.`runnable_type` AS t0_r21,
 `report_learners`.`complete_percent` AS t0_r22, `report_learners`.`permission_forms` AS t0_r23,
 `report_learners`.`num_submitted` AS t0_r24, `report_learners`.`teachers_district` AS t0_r25,
 `report_learners`.`teachers_state` AS t0_r26, `report_learners`.`teachers_email` AS t0_r27,
 `portal_learners`.`id` AS t1_r0, `portal_learners`.`uuid` AS t1_r1,
 `portal_learners`.`student_id` AS t1_r2, `portal_learners`.`offering_id` AS t1_r3,
 `portal_learners`.`created_at` AS t1_r4, `portal_learners`.`updated_at` AS t1_r5,
 `portal_learners`.`bundle_logger_id` AS t1_r6, `portal_learners`.`console_logger_id` AS t1_r7,
 `portal_learners`.`secure_key` AS t1_r8, `portal_students`.`id` AS t2_r0,
 `portal_students`.`uuid` AS t2_r1, `portal_students`.`user_id` AS t2_r2,
 `portal_students`.`grade_level_id` AS t2_r3, `portal_students`.`created_at` AS t2_r4,
 `portal_students`.`updated_at` AS t2_r5, `portal_student_permission_forms`.`id` AS t3_r0,
 `portal_student_permission_forms`.`signed` AS t3_r1, `portal_student_permission_forms`.`portal_student_id` AS t3_r2,
 `portal_student_permission_forms`.`portal_permission_form_id` AS t3_r3, 
 `portal_student_permission_forms`.`created_at` AS t3_r4, `portal_student_permission_forms`.`updated_at` AS t3_r5 
 FROM `report_learners` LEFT OUTER JOIN `portal_learners` ON `portal_learners`.`id` = `report_learners`.`learner_id` 
 LEFT OUTER JOIN `portal_students` ON `portal_students`.`id` = `report_learners`.`student_id` 
 LEFT OUTER JOIN `portal_student_permission_forms` ON `portal_student_permission_forms`.`portal_student_id` = `portal_students`.`id`
 WHERE `portal_student_permission_forms`.`portal_permission_form_id` IN (1,2)

Above query is generated from the rails code:

scope :with_permission_ids, lambda { |ids|
    includes(student: :portal_student_permission_forms)
      .where("portal_student_permission_forms.portal_permission_form_id" => ids)

  }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment