diff --git a/modules/book/book.module b/modules/book/book.module
index 9d3284bc8fea82936ece043be6d6e37350070e7f..1351fb6250073da1f2fec60195a5fbc6d9714c14 100644
--- a/modules/book/book.module
+++ b/modules/book/book.module
@@ -370,12 +370,12 @@ function book_get_books() {
 
     if ($nids) {
       $query = db_select('book', 'b', array('fetch' => PDO::FETCH_ASSOC));
-      $node_alias = $query->join('node', 'n', 'b.nid = n.nid');
-      $menu_links_alias = $query->join('menu_links', 'ml', 'b.mlid = ml.mlid');
+      $query->join('node', 'n', 'b.nid = n.nid');
+      $query->join('menu_links', 'ml', 'b.mlid = ml.mlid');
       $query->addField('n', 'type', 'type');
       $query->addField('n', 'title', 'title');
       $query->fields('b');
-      $query->fields($menu_links_alias);
+      $query->fields('ml');
       $query->condition('n.nid', $nids, 'IN');
       $query->condition('n.status', 1);
       $query->orderBy('ml.weight');
@@ -1268,10 +1268,10 @@ function book_menu_subtree_data($link) {
     // If the subtree data was not in the cache, $data will be NULL.
     if (!isset($data)) {
       $query = db_select('menu_links', 'ml', array('fetch' => PDO::FETCH_ASSOC));
-      $menu_router_alias = $query->join('menu_router', 'm', 'm.path = ml.router_path');
-      $book_alias = $query->join('book', 'b', 'ml.mlid = b.mlid');
-      $query->fields($book_alias);
-      $query->fields($menu_router_alias, array('load_functions', 'to_arg_functions', 'access_callback', 'access_arguments', 'page_callback', 'page_arguments', 'delivery_callback', 'title', 'title_callback', 'title_arguments', 'type'));
+      $query->join('menu_router', 'm', 'm.path = ml.router_path');
+      $query->join('book', 'b', 'ml.mlid = b.mlid');
+      $query->fields('b');
+      $query->fields('m', array('load_functions', 'to_arg_functions', 'access_callback', 'access_arguments', 'page_callback', 'page_arguments', 'delivery_callback', 'title', 'title_callback', 'title_arguments', 'type'));
       $query->fields('ml');
       $query->condition('menu_name', $link['menu_name']);
       for ($i = 1; $i <= MENU_MAX_DEPTH && $link["p$i"]; ++$i) {
diff --git a/modules/node/node.admin.inc b/modules/node/node.admin.inc
index 15c0593adee4d497e5c711a2242a7688e7470f38..d20f1983d3f494a8391e523f424995ce4e6a9b9a 100644
--- a/modules/node/node.admin.inc
+++ b/modules/node/node.admin.inc
@@ -119,14 +119,12 @@ function node_filters() {
 function node_build_filter_query(SelectQueryInterface $query) {
   // Build query
   $filter_data = isset($_SESSION['node_overview_filter']) ? $_SESSION['node_overview_filter'] : array();
-  $counter = 0;
   foreach ($filter_data as $index => $filter) {
     list($key, $value) = $filter;
     switch ($key) {
       case 'term':
-        $index = 'ti' . $counter++;
-        $query->join('taxonomy_index', $index, "n.nid = $index.nid");
-        $query->condition($index . '.tid', $value);
+        $alias = $query->join('taxonomy_index', 'ti', "n.nid = %alias.nid");
+        $query->condition($alias . '.tid', $value);
         break;
       case 'status':
         // Note: no exploitable hole as $key/$value have already been checked when submitted
diff --git a/modules/node/node.module b/modules/node/node.module
index fc75cd7951d57bdfd03d9c62ca747c94deb6aa86..594df724133c0f06368c941ad44bb7369107613f 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -3031,15 +3031,15 @@ function node_query_node_access_alter(QueryAlterableInterface $query) {
     if (!($table instanceof SelectQueryInterface) && $table == 'node') {
 
       // The node_access table has the access grants for any given node.
-      $access_alias = $query->join('node_access', 'na', "na.nid = {$nalias}.nid");
+      $access_alias = $query->join('node_access', 'na', '%alias.nid = ' . $nalias . '.nid');
       $or = db_or();
       // If any grant exists for the specified user, then user has access
       // to the node for the specified operation.
       foreach ($grants as $realm => $gids) {
         foreach ($gids as $gid) {
           $or->condition(db_and()
-            ->condition("{$access_alias}.gid", $gid)
-            ->condition("{$access_alias}.realm", $realm)
+            ->condition($access_alias . '.gid', $gid)
+            ->condition($access_alias . '.realm', $realm)
           );
         }
       }
@@ -3048,7 +3048,7 @@ function node_query_node_access_alter(QueryAlterableInterface $query) {
         $query->condition($or);
       }
 
-      $query->condition("{$access_alias}.grant_$op", 1, '>=');
+      $query->condition($access_alias . '.grant_' . $op, 1, '>=');
     }
   }
 }
diff --git a/modules/simpletest/tests/database_test.module b/modules/simpletest/tests/database_test.module
index ea94601e3c47cccefe6d9d5300ea365cd86a4882..18fc056aa39d8709e2ef7078b01766dfa3281536 100644
--- a/modules/simpletest/tests/database_test.module
+++ b/modules/simpletest/tests/database_test.module
@@ -11,8 +11,8 @@ function database_test_query_alter(QueryAlterableInterface $query) {
   }
 
   if ($query->hasTag('database_test_alter_add_join')) {
-    $people_alias = $query->join('test', 'people', "test_task.pid=people.id");
-    $name_field = $query->addField('people', 'name', 'name');
+    $people_alias = $query->join('test', 'people', "test_task.pid = %alias.id");
+    $name_field = $query->addField($people_alias, 'name', 'name');
     $query->condition($people_alias . '.id', 2);
   }
 
diff --git a/modules/system/system.api.php b/modules/system/system.api.php
index 6101c3fe145db2531ccaf37114a8613a94887cbe..0a37d895182cf14d155432815d045e784ab83d2f 100644
--- a/modules/system/system.api.php
+++ b/modules/system/system.api.php
@@ -2656,14 +2656,14 @@ function hook_query_TAG_alter(QueryAlterableInterface $query) {
     // Skip the extra joins and conditions for node admins.
     if (!user_access('bypass node access')) {
       // The node_access table has the access grants for any given node.
-      $access_alias = $query->join('node_access', 'na', 'na.nid = n.nid');
+      $access_alias = $query->join('node_access', 'na', '%alias.nid = n.nid');
       $or = db_or();
       // If any grant exists for the specified user, then user has access to the node for the specified operation.
       foreach (node_access_grants($op, $query->getMetaData('account')) as $realm => $gids) {
         foreach ($gids as $gid) {
           $or->condition(db_and()
-            ->condition("{$access_alias}.gid", $gid)
-            ->condition("{$access_alias}.realm", $realm)
+            ->condition($access_alias . '.gid', $gid)
+            ->condition($access_alias . '.realm', $realm)
           );
         }
       }
@@ -2672,7 +2672,7 @@ function hook_query_TAG_alter(QueryAlterableInterface $query) {
         $query->condition($or);
       }
 
-      $query->condition("{$access_alias}.grant_$op", 1, '>=');
+      $query->condition($access_alias . 'grant_' . $op, 1, '>=');
     }
   }
 }
diff --git a/modules/user/user.module b/modules/user/user.module
index 8f226d6131b47861ae0afc3c167d4fd0f4007c95..132ec622cc3c2cca760d051f14652df0b3d881ff 100644
--- a/modules/user/user.module
+++ b/modules/user/user.module
@@ -3144,8 +3144,6 @@ function user_filters() {
  */
 function user_build_filter_query(SelectQuery $query) {
   $filters = user_filters();
-  $role_count = 0;
-  $permission_count = 0;
   // Extend Query with filter conditions.
   foreach (isset($_SESSION['user_overview_filter']) ? $_SESSION['user_overview_filter'] : array() as $filter) {
     list($key, $value) = $filter;
@@ -3159,19 +3157,13 @@ function user_build_filter_query(SelectQuery $query) {
       if (user_access($value, $account)) {
         continue;
       }
-      $user_role_alias = 'ur' . $role_count;
-      $permission_alias = 'p' . $permission_count;
-      $query->innerJoin('users_roles', $user_role_alias, $user_role_alias . '.uid = u.uid');
-      $query->innerJoin('role_permission', $permission_alias , $user_role_alias . '.rid = ' . $permission_alias . '.rid');
+      $user_role_alias = $query->join('users_roles', 'ur', '%alias.uid = u.uid');
+      $permission_alias = $query->join('role_permission', 'p', $user_role_alias . '.rid = %alias.rid');
       $query->condition($permission_alias . '.permission', $value);
-      $role_count++;
-      $permission_count++;
     }
     else if ($key == 'role') {
-      $user_role_alias = 'ur' . $role_count;
-      $query->innerJoin('users_roles', $user_role_alias, $user_role_alias . '.uid = u.uid');
+      $user_roles_alias = $query->join('users_roles', 'ur', '%alias.uid = u.uid');
       $query->condition($user_role_alias . '.rid' , $value);
-      $role_count++;
     }
     else {
       $query->condition($filters[$key]['field'], $value);