You are here

public function SelectQuery::union in Drupal 7

Add another Select query to UNION to this one.

Union queries consist of two or more queries whose results are effectively concatenated together. Queries will be UNIONed in the order they are specified, with this object's query coming first. Duplicate columns will be discarded. All forms of UNION are supported, using the second '$type' argument.

Note: All queries UNIONed together must have the same field structure, in the same order. It is up to the caller to ensure that they match properly. If they do not, an SQL syntax error will result.


$query: The query to UNION to this query.

$type: The type of UNION to add to the query. Defaults to plain UNION.

Return value

SelectQueryInterface The called object.

Overrides SelectQueryInterface::union


includes/database/, line 1420


Query builder for SELECT statements.


public function union(SelectQueryInterface $query, $type = '') {

  // Handle UNION aliasing.
  switch ($type) {

    // Fold UNION DISTINCT to UNION for better cross database support.
    case 'DISTINCT':
    case '':
      $type = 'UNION';
    case 'ALL':
      $type = 'UNION ALL';
  $this->union[] = array(
    'type' => $type,
    'query' => $query,
  return $this;