Index: src/bp-notifications/bp-notifications-template.php
--- src/bp-notifications/bp-notifications-template.php
+++ src/bp-notifications/bp-notifications-template.php
@@ -205,6 +205,15 @@
 	public $pag_page;
 
 	/**
+	 * The $_GET argument used in URLs for determining pagination
+	 *
+	 * @since BuddyPress (1.9.0)
+	 * @access public
+	 * @var int
+	 */
+	public $pag_arg;
+
+	/**
 	 * The number of items to display per page of results.
 	 *
 	 * @since BuddyPress (1.9.0)
@@ -250,6 +259,14 @@
 	public $sort_order;
 
 	/**
+	 * Array of variables used in this notification query
+	 *
+	 * @since BuddyPress (2.2.2)
+	 * @var array
+	 */
+	public $query_vars;
+
+	/**
 	 * Constructor method.
 	 *
 	 * @see bp_has_notifications() For information on the array format.
@@ -267,6 +284,7 @@
 		$r = wp_parse_args( $args, array(
 			'id'                => false,
 			'user_id'           => 0,
+			'item_id'           => false,
 			'secondary_item_id' => false,
 			'component_name'    => bp_notifications_get_registered_components(),
 			'component_action'  => false,
@@ -274,10 +292,10 @@
 			'search_terms'      => '',
 			'order_by'          => 'date_notified',
 			'sort_order'        => 'DESC',
+			'page_arg'          => 'npage',
 			'page'              => 1,
 			'per_page'          => 25,
 			'max'               => null,
-			'page_arg'          => 'npage',
 		) );
 
 		// Overrides
@@ -299,10 +317,24 @@
 		$this->search_terms = $r['search_terms'];
 		$this->order_by     = $r['order_by'];
 		$this->sort_order   = $r['sort_order'];
+		$this->query_vars   = array(
+			'id'                => $r['id'],
+			'user_id'           => $this->user_id,
+			'item_id'           => $r['item_id'],
+			'secondary_item_id' => $r['secondary_item_id'],
+			'component_name'    => $r['component_name'],
+			'component_action'  => $r['component_action'],
+			'is_new'            => $this->is_new,
+			'search_terms'      => $this->search_terms,
+			'order_by'          => $this->order_by,
+			'sort_order'        => $this->sort_order,
+			'page'              => $this->pag_page,
+			'per_page'          => $this->pag_num,
+		);
 
 		// Setup the notifications to loop through
-		$this->notifications            = BP_Notifications_Notification::get( $r );
-		$this->total_notification_count = BP_Notifications_Notification::get_total_count( $r );
+		$this->notifications            = BP_Notifications_Notification::get( $this->query_vars );
+		$this->total_notification_count = BP_Notifications_Notification::get_total_count( $this->query_vars );
 
 		if ( empty( $this->notifications ) ) {
 			$this->notification_count       = 0;
Index: tests/phpunit/testcases/notifications/class-bp-notifications-notification.php
--- tests/phpunit/testcases/notifications/class-bp-notifications-notification.php
+++ tests/phpunit/testcases/notifications/class-bp-notifications-notification.php
@@ -279,4 +279,60 @@
 		$actual = wp_list_pluck( $n, 'id' );
 		$this->assertEquals( $expected, $actual );
 	}
+	
+	/**
+	 * @group pagination
+	 * @group BP6229
+	 */
+	public function test_get_paged_sql() {
+		$u = $this->factory->user->create();
+		$this->factory->notification->create( array(
+			'component_name' => 'activity',
+			'secondary_item_id' => 1,
+			'user_id' => $u,
+			'is_new' => true,
+		) );
+		$this->factory->notification->create( array(
+			'component_name' => 'activity',
+			'secondary_item_id' => 2,
+			'user_id' => $u,
+			'is_new' => true,
+		) );
+		$this->factory->notification->create( array(
+			'component_name' => 'activity',
+			'secondary_item_id' => 3,
+			'user_id' => $u,
+			'is_new' => true,
+		) );
+		$this->factory->notification->create( array(
+			'component_name' => 'activity',
+			'secondary_item_id' => 4,
+			'user_id' => $u,
+			'is_new' => true,
+		) );
+		$this->factory->notification->create( array(
+			'component_name' => 'activity',
+			'secondary_item_id' => 5,
+			'user_id' => $u,
+			'is_new' => true,
+		) );
+		$this->factory->notification->create( array(
+			'component_name' => 'activity',
+			'secondary_item_id' => 6,
+			'user_id' => $u,
+			'is_new' => true,
+		) );
+
+		$n = BP_Notifications_Notification::get( array(
+			'user_id' => $u,
+			'is_new' => true,
+			'page' => 2,
+			'per_page' => 4
+		) );
+
+		// Check that the correct number of items are pulled up
+		$expected = 2;
+		$actual = count( $n );
+		$this->assertEquals( $expected, $actual );
+	}
 }
