% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/verb-set-ops.R
\name{intersect.tbl_lazy}
\alias{intersect.tbl_lazy}
\alias{union.tbl_lazy}
\alias{union_all.tbl_lazy}
\alias{setdiff.tbl_lazy}
\title{SQL set operations}
\usage{
\method{intersect}{tbl_lazy}(x, y, copy = "none", ..., all = FALSE)

\method{union}{tbl_lazy}(x, y, copy = "none", ..., all = FALSE)

\method{union_all}{tbl_lazy}(x, y, copy = "none", ...)

\method{setdiff}{tbl_lazy}(x, y, copy = "none", ..., all = FALSE)
}
\arguments{
\item{x, y}{A pair of lazy data frames backed by database queries.}

\item{copy}{If \code{x} and \code{y} are not from the same data source, \code{copy}
controls how \code{y} is copied into the same source as \code{x}. There are three
options:
\itemize{
\item \code{"none"}, the default, will error if \code{y} needs to be copied. This ensures
that you don't accidentally copy large datasets from R to the database.
\item \code{"temp-table"}: copies \code{y} into a temporary table in the same
database as \code{x}. \verb{*_join()} will automatically run \code{ANALYZE} on the
created table in the hope that this will make your queries as efficient
as possible by giving more data to the query planner.
\item \code{"inline"}: \code{y} will be inlined into the query using \code{\link[=copy_inline]{copy_inline()}}.
This should be faster for small datasets and doesn't require write
access.
}

\code{TRUE} (\code{"temp-table"}) and \code{FALSE} (\code{"none"}) are also accepted for
backward compatibility.}

\item{...}{Must be empty.}

\item{all}{If \code{TRUE}, includes all matches in output, not just unique rows.}
}
\description{
These are methods for the dplyr generics \code{dplyr::intersect()},
\code{dplyr::union()}, and \code{dplyr::setdiff()}. They are translated to
\code{INTERSECT}, \code{UNION}, and \code{EXCEPT} respectively.
}
