JoinClause
class JoinClause extends Builder (View source)
Traits
Properties
| static protected array | $macros | The registered string macros.  | 
                from Macroable | 
| ConnectionInterface | $connection | The database connection instance.  | 
                from Builder | 
| Grammar | $grammar | The database query grammar instance.  | 
                from Builder | 
| Processor | $processor | The database query post processor instance.  | 
                from Builder | 
| array | $bindings | The current query value bindings.  | 
                from Builder | 
| array | $aggregate | An aggregate function and column to be run.  | 
                from Builder | 
| array | $columns | The columns that should be returned.  | 
                from Builder | 
| bool|array | $distinct | Indicates if the query returns distinct results.  | 
                from Builder | 
| string | $from | The table which the query is targeting.  | 
                from Builder | 
| array | $joins | The table joins for the query.  | 
                from Builder | 
| array | $wheres | The where constraints for the query.  | 
                from Builder | 
| array | $groups | The groupings for the query.  | 
                from Builder | 
| array | $havings | The having constraints for the query.  | 
                from Builder | 
| array | $orders | The orderings for the query.  | 
                from Builder | 
| int | $limit | The maximum number of records to return.  | 
                from Builder | 
| int | $offset | The number of records to skip.  | 
                from Builder | 
| array | $unions | The query union statements.  | 
                from Builder | 
| int | $unionLimit | The maximum number of union records to return.  | 
                from Builder | 
| int | $unionOffset | The number of union records to skip.  | 
                from Builder | 
| array | $unionOrders | The orderings for the union query.  | 
                from Builder | 
| string|bool | $lock | Indicates whether row locking is being used.  | 
                from Builder | 
| array | $operators | All of the available clause operators.  | 
                from Builder | 
| bool | $useWritePdo | Whether use write pdo for select.  | 
                from Builder | 
| string | $type | The type of join being performed.  | 
                |
| string | $table | The table the join clause is joining to.  | 
                |
| protected ConnectionInterface | $parentConnection | The connection of the parent query builder.  | 
                |
| protected Grammar | $parentGrammar | The grammar of the parent query builder.  | 
                |
| protected Processor | $parentProcessor | The processor of the parent query builder.  | 
                |
| protected string | $parentClass | The class name of the parent query builder.  | 
                
Methods
Execute a callback over each item while chunking.
Chunk the results of a query by comparing IDs.
Execute a callback over each item while chunking by id.
Execute the query and get the first result.
Apply the callback's query changes if the given "value" is true.
Apply the callback's query changes if the given "value" is false.
Create a new length-aware paginator instance.
Create a new simple paginator instance.
Forward a method call to the given object.
Throw a bad method call exception for the given method.
Mix another object into the class.
Dynamically handle calls to the class.
Dynamically handle calls to the class.
Add a new "raw" select expression to the query.
Set the table which the query is targeting.
Add a join clause to the query.
Add a "join where" clause to the query.
Add a subquery join clause to the query.
Add a left join to the query.
Add a "join where" clause to the query.
Add a subquery left join to the query.
Add a right join to the query.
Add a "right join where" clause to the query.
Add a subquery right join to the query.
Add a "cross join" clause to the query.
Merge an array of where clauses and bindings.
Add a basic where clause to the query.
Add an array of where clauses to the query.
Prepare the value and operator for a where clause.
Determine if the given operator and value combination is legal.
Add an "or where" clause to the query.
Add a "where" clause comparing two columns to the query.
Add an "or where" clause comparing two columns to the query.
Add a raw where clause to the query.
Add a raw or where clause to the query.
Add a "where in" clause to the query.
Add a "where not in" clause to the query.
Add an "or where not in" clause to the query.
Add a "where in raw" clause for integer values to the query.
Add a "where not in raw" clause for integer values to the query.
Add a "where null" clause to the query.
Add an "or where null" clause to the query.
Add a "where not null" clause to the query.
Add a where between statement to the query.
Add an or where between statement to the query.
Add a where not between statement to the query.
Add an or where not between statement to the query.
Add an "or where not null" clause to the query.
Add a "where date" statement to the query.
Add an "or where date" statement to the query.
Add a "where time" statement to the query.
Add an "or where time" statement to the query.
Add a "where day" statement to the query.
Add an "or where day" statement to the query.
Add a "where month" statement to the query.
Add an "or where month" statement to the query.
Add a "where year" statement to the query.
Add an "or where year" statement to the query.
Add a date based (year, month, day, time) statement to the query.
Add another query builder as a nested where to the query builder.
Add a full sub-select to the query.
Add an exists clause to the query.
Add a where not exists clause to the query.
Add an exists clause to the query.
Adds a where condition using row values.
Adds a or where condition using row values.
Add a "where JSON contains" clause to the query.
Add a "or where JSON contains" clause to the query.
Add a "where JSON not contains" clause to the query.
Add a "or where JSON not contains" clause to the query.
Add a "where JSON length" clause to the query.
Add a "or where JSON length" clause to the query.
Handles dynamic "where" clauses to the query.
Add a single dynamic where clause statement to the query.
Add a raw groupBy clause to the query.
Add a "having" clause to the query.
Add a "or having" clause to the query.
Add a "having between " clause to the query.
Add a raw having clause to the query.
Add a raw or having clause to the query.
Add an "order by" clause to the query.
Add an "order by" clause for a timestamp to the query.
Add an "order by" clause for a timestamp to the query.
Add a raw "order by" clause to the query.
Constrain the query to the previous "page" of results before a given ID.
Constrain the query to the next "page" of results after a given ID.
Get an array with all orders with a given column removed.
Execute a query for a single record by ID.
Get a single column's value from the first result of a query.
Paginate the given query into a simple paginator.
Get a paginator only supporting simple next and previous links.
Get the count of the total records for the paginator.
Remove the column aliases since they will break count queries.
Get an array with the values of a given column.
Strip off the table name or alias from a column identifier.
Retrieve column values from rows represented as objects.
Retrieve column values from rows represented as arrays.
Concatenate values of a given column as a string.
Execute an aggregate function on the database.
Execute a numeric aggregate function on the database.
Set the aggregate property without running the query.
Execute the given callback while selecting the given columns.
Insert a new record into the database while ignoring errors.
Insert a new record and get the value of the primary key.
Insert new records into the table using a subquery.
Insert or update a record matching the attributes, and fill it with values.
Increment a column's value by a given amount.
Decrement a column's value by a given amount.
Create a new query instance for sub-query.
Set the bindings on the query builder.
Remove all of the expressions from a list of bindings.
Get a scalar type value from an unknown type of input.
Determine if the value is a query builder instance or a Closure.
Clone the query without the given bindings.
Add an "on" clause to the join.
Create a new parent query instance.
Details
        
                            bool
    chunk(int $count, callable $callback)
        
    
    Chunk the results of the query.
        
                            bool
    each(callable $callback, int $count = 1000)
        
    
    Execute a callback over each item while chunking.
        
                            bool
    chunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null)
        
    
    Chunk the results of a query by comparing IDs.
        
                            bool
    eachById(callable $callback, int $count = 1000, string|null $column = null, string|null $alias = null)
        
    
    Execute a callback over each item while chunking by id.
        
                            Model|object|BuildsQueries|null
    first(array|string $columns = ['*'])
        
    
    Execute the query and get the first result.
        
                            mixed|$this
    when(mixed $value, callable $callback, callable|null $default = null)
        
    
    Apply the callback's query changes if the given "value" is true.
        
                            $this
    tap(callable $callback)
        
    
    Pass the query to a given callback.
        
                            mixed|$this
    unless(mixed $value, callable $callback, callable|null $default = null)
        
    
    Apply the callback's query changes if the given "value" is false.
        
                    protected        LengthAwarePaginator
    paginator(Collection $items, int $total, int $perPage, int $currentPage, array $options)
        
    
    Create a new length-aware paginator instance.
        
                    protected        Paginator
    simplePaginator(Collection $items, int $perPage, int $currentPage, array $options)
        
    
    Create a new simple paginator instance.
        
                    protected        mixed
    forwardCallTo(mixed $object, string $method, array $parameters)
        
    
    Forward a method call to the given object.
        
                static    protected        void
    throwBadMethodCallException(string $method)
        
    
    Throw a bad method call exception for the given method.
        
                static            void
    macro(string $name, object|callable $macro)
        
    
    Register a custom macro.
        
                static            void
    mixin(object $mixin, bool $replace = true)
        
    
    Mix another object into the class.
        
                static            bool
    hasMacro(string $name)
        
    
    Checks if macro is registered.
        
                static            mixed
    __callStatic(string $method, array $parameters)
        
    
    Dynamically handle calls to the class.
        
                            mixed
    __call(string $method, array $parameters)
        
    
    Dynamically handle calls to the class.
        
                            void
    __construct(Builder $parentQuery, string $type, string $table)
        
    
    Create a new join clause instance.
        
                            $this
    select(array|mixed $columns = ['*'])
        
    
    Set the columns to be selected.
        
                            Builder|Builder
    selectSub(Closure|$this|string $query, string $as)
        
    
    Add a subselect expression to the query.
        
                            Builder|Builder
    selectRaw(string $expression, array $bindings = [])
        
    
    Add a new "raw" select expression to the query.
        
                            Builder|Builder
    fromSub(Closure|Builder|string $query, string $as)
        
    
    Makes "from" fetch from a subquery.
        
                            Builder|Builder
    fromRaw(string $expression, mixed $bindings = [])
        
    
    Add a raw from clause to the query.
        
                    protected        array
    parseSub(mixed $query)
        
    
    Parse the subquery into SQL and bindings.
        
                            $this
    addSelect(array|mixed $column)
        
    
    Add a new select column to the query.
        
                            $this
    distinct()
        
    
    Force the query to only return distinct results.
        
                            $this
    from(Closure|Builder|string $table, string|null $as = null)
        
    
    Set the table which the query is targeting.
        
                            $this
    join(string $table, Closure|string $first, string|null $operator = null, string|null $second = null, string $type = 'inner', bool $where = false)
        
    
    Add a join clause to the query.
        
                            Builder|Builder
    joinWhere(string $table, Closure|string $first, string $operator, string $second, string $type = 'inner')
        
    
    Add a "join where" clause to the query.
        
                            Builder|Builder
    joinSub(Closure|Builder|string $query, string $as, Closure|string $first, string|null $operator = null, string|null $second = null, string $type = 'inner', bool $where = false)
        
    
    Add a subquery join clause to the query.
        
                            Builder|Builder
    leftJoin(string $table, Closure|string $first, string|null $operator = null, string|null $second = null)
        
    
    Add a left join to the query.
        
                            Builder|Builder
    leftJoinWhere(string $table, Closure|string $first, string $operator, string $second)
        
    
    Add a "join where" clause to the query.
        
                            Builder|Builder
    leftJoinSub(Closure|Builder|string $query, string $as, Closure|string $first, string|null $operator = null, string|null $second = null)
        
    
    Add a subquery left join to the query.
        
                            Builder|Builder
    rightJoin(string $table, Closure|string $first, string|null $operator = null, string|null $second = null)
        
    
    Add a right join to the query.
        
                            Builder|Builder
    rightJoinWhere(string $table, Closure|string $first, string $operator, string $second)
        
    
    Add a "right join where" clause to the query.
        
                            Builder|Builder
    rightJoinSub(Closure|Builder|string $query, string $as, Closure|string $first, string|null $operator = null, string|null $second = null)
        
    
    Add a subquery right join to the query.
        
                            Builder|Builder
    crossJoin(string $table, Closure|string|null $first = null, string|null $operator = null, string|null $second = null)
        
    
    Add a "cross join" clause to the query.
        
                    protected        JoinClause
    newJoinClause(Builder $parentQuery, string $type, string $table)
        
    
    Get a new join clause.
        
                            void
    mergeWheres(array $wheres, array $bindings)
        
    
    Merge an array of where clauses and bindings.
        
                            $this
    where(Closure|string|array $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')
        
    
    Add a basic where clause to the query.
        
                    protected        $this
    addArrayOfWheres(array $column, string $boolean, string $method = 'where')
        
    
    Add an array of where clauses to the query.
        
                            array
    prepareValueAndOperator(string $value, string $operator, bool $useDefault = false)
        
    
    Prepare the value and operator for a where clause.
        
                    protected        bool
    invalidOperatorAndValue(string $operator, mixed $value)
        
    
    Determine if the given operator and value combination is legal.
Prevents using Null values with invalid operators.
        
                    protected        bool
    invalidOperator(string $operator)
        
    
    Determine if the given operator is supported.
        
                            Builder|Builder
    orWhere(Closure|string|array $column, mixed $operator = null, mixed $value = null)
        
    
    Add an "or where" clause to the query.
        
                            Builder|Builder
    whereColumn(string|array $first, string|null $operator = null, string|null $second = null, string|null $boolean = 'and')
        
    
    Add a "where" clause comparing two columns to the query.
        
                            Builder|Builder
    orWhereColumn(string|array $first, string|null $operator = null, string|null $second = null)
        
    
    Add an "or where" clause comparing two columns to the query.
        
                            $this
    whereRaw(string $sql, mixed $bindings = [], string $boolean = 'and')
        
    
    Add a raw where clause to the query.
        
                            Builder|Builder
    orWhereRaw(string $sql, mixed $bindings = [])
        
    
    Add a raw or where clause to the query.
        
                            $this
    whereIn(string $column, mixed $values, string $boolean = 'and', bool $not = false)
        
    
    Add a "where in" clause to the query.
        
                            Builder|Builder
    whereNotIn(string $column, mixed $values, string $boolean = 'and')
        
    
    Add a "where not in" clause to the query.
        
                            Builder|Builder
    orWhereNotIn(string $column, mixed $values)
        
    
    Add an "or where not in" clause to the query.
        
                            $this
    whereIntegerInRaw(string $column, Arrayable|array $values, string $boolean = 'and', bool $not = false)
        
    
    Add a "where in raw" clause for integer values to the query.
        
                            $this
    whereIntegerNotInRaw(string $column, Arrayable|array $values, string $boolean = 'and')
        
    
    Add a "where not in raw" clause for integer values to the query.
        
                            $this
    whereNull(string|array $columns, string $boolean = 'and', bool $not = false)
        
    
    Add a "where null" clause to the query.
        
                            Builder|Builder
    whereNotNull(string|array $columns, string $boolean = 'and')
        
    
    Add a "where not null" clause to the query.
        
                            $this
    whereBetween(string $column, array $values, string $boolean = 'and', bool $not = false)
        
    
    Add a where between statement to the query.
        
                            Builder|Builder
    orWhereBetween(string $column, array $values)
        
    
    Add an or where between statement to the query.
        
                            Builder|Builder
    whereNotBetween(string $column, array $values, string $boolean = 'and')
        
    
    Add a where not between statement to the query.
        
                            Builder|Builder
    orWhereNotBetween(string $column, array $values)
        
    
    Add an or where not between statement to the query.
        
                            Builder|Builder
    whereDate(string $column, string $operator, DateTimeInterface|string|null $value = null, string $boolean = 'and')
        
    
    Add a "where date" statement to the query.
        
                            Builder|Builder
    orWhereDate(string $column, string $operator, DateTimeInterface|string|null $value = null)
        
    
    Add an "or where date" statement to the query.
        
                            Builder|Builder
    whereTime(string $column, string $operator, DateTimeInterface|string|null $value = null, string $boolean = 'and')
        
    
    Add a "where time" statement to the query.
        
                            Builder|Builder
    orWhereTime(string $column, string $operator, DateTimeInterface|string|null $value = null)
        
    
    Add an "or where time" statement to the query.
        
                            Builder|Builder
    whereDay(string $column, string $operator, DateTimeInterface|string|null $value = null, string $boolean = 'and')
        
    
    Add a "where day" statement to the query.
        
                            Builder|Builder
    orWhereDay(string $column, string $operator, DateTimeInterface|string|null $value = null)
        
    
    Add an "or where day" statement to the query.
        
                            Builder|Builder
    whereMonth(string $column, string $operator, DateTimeInterface|string|null $value = null, string $boolean = 'and')
        
    
    Add a "where month" statement to the query.
        
                            Builder|Builder
    orWhereMonth(string $column, string $operator, DateTimeInterface|string|null $value = null)
        
    
    Add an "or where month" statement to the query.
        
                            Builder|Builder
    whereYear(string $column, string $operator, DateTimeInterface|string|int|null $value = null, string $boolean = 'and')
        
    
    Add a "where year" statement to the query.
        
                            Builder|Builder
    orWhereYear(string $column, string $operator, DateTimeInterface|string|int|null $value = null)
        
    
    Add an "or where year" statement to the query.
        
                    protected        $this
    addDateBasedWhere(string $type, string $column, string $operator, mixed $value, string $boolean = 'and')
        
    
    Add a date based (year, month, day, time) statement to the query.
        
                            Builder|Builder
    whereNested(Closure $callback, string $boolean = 'and')
        
    
    Add a nested where statement to the query.
        
                            Builder
    forNestedWhere()
        
    
    Create a new query instance for nested where condition.
        
                            $this
    addNestedWhereQuery(Builder|Builder $query, string $boolean = 'and')
        
    
    Add another query builder as a nested where to the query builder.
        
                    protected        $this
    whereSub(string $column, string $operator, Closure $callback, string $boolean)
        
    
    Add a full sub-select to the query.
        
                            $this
    whereExists(Closure $callback, string $boolean = 'and', bool $not = false)
        
    
    Add an exists clause to the query.
        
                            Builder|Builder
    orWhereExists(Closure $callback, bool $not = false)
        
    
    Add an or exists clause to the query.
        
                            Builder|Builder
    whereNotExists(Closure $callback, string $boolean = 'and')
        
    
    Add a where not exists clause to the query.
        
                            $this
    addWhereExistsQuery(Builder $query, string $boolean = 'and', bool $not = false)
        
    
    Add an exists clause to the query.
        
                            $this
    whereRowValues(array $columns, string $operator, array $values, string $boolean = 'and')
        
    
    Adds a where condition using row values.
        
                            $this
    orWhereRowValues(array $columns, string $operator, array $values)
        
    
    Adds a or where condition using row values.
        
                            $this
    whereJsonContains(string $column, mixed $value, string $boolean = 'and', bool $not = false)
        
    
    Add a "where JSON contains" clause to the query.
        
                            $this
    orWhereJsonContains(string $column, mixed $value)
        
    
    Add a "or where JSON contains" clause to the query.
        
                            $this
    whereJsonDoesntContain(string $column, mixed $value, string $boolean = 'and')
        
    
    Add a "where JSON not contains" clause to the query.
        
                            $this
    orWhereJsonDoesntContain(string $column, mixed $value)
        
    
    Add a "or where JSON not contains" clause to the query.
        
                            $this
    whereJsonLength(string $column, mixed $operator, mixed $value = null, string $boolean = 'and')
        
    
    Add a "where JSON length" clause to the query.
        
                            $this
    orWhereJsonLength(string $column, mixed $operator, mixed $value = null)
        
    
    Add a "or where JSON length" clause to the query.
        
                            $this
    dynamicWhere(string $method, array $parameters)
        
    
    Handles dynamic "where" clauses to the query.
        
                    protected        void
    addDynamic(string $segment, string $connector, array $parameters, int $index)
        
    
    Add a single dynamic where clause statement to the query.
        
                            $this
    groupBy(array|string ...$groups)
        
    
    Add a "group by" clause to the query.
        
                            $this
    groupByRaw(string $sql, array $bindings = [])
        
    
    Add a raw groupBy clause to the query.
        
                            $this
    having(string $column, string|null $operator = null, string|null $value = null, string $boolean = 'and')
        
    
    Add a "having" clause to the query.
        
                            Builder|Builder
    orHaving(string $column, string|null $operator = null, string|null $value = null)
        
    
    Add a "or having" clause to the query.
        
                            Builder|Builder
    havingBetween(string $column, array $values, string $boolean = 'and', bool $not = false)
        
    
    Add a "having between " clause to the query.
        
                            $this
    havingRaw(string $sql, array $bindings = [], string $boolean = 'and')
        
    
    Add a raw having clause to the query.
        
                            Builder|Builder
    orHavingRaw(string $sql, array $bindings = [])
        
    
    Add a raw or having clause to the query.
        
                            $this
    orderBy(Closure|Builder|Expression|string $column, string $direction = 'asc')
        
    
    Add an "order by" clause to the query.
        
                            $this
    orderByDesc(string $column)
        
    
    Add a descending "order by" clause to the query.
        
                            Builder|Builder
    latest(string $column = 'created_at')
        
    
    Add an "order by" clause for a timestamp to the query.
        
                            Builder|Builder
    oldest(string $column = 'created_at')
        
    
    Add an "order by" clause for a timestamp to the query.
        
                            $this
    inRandomOrder(string $seed = '')
        
    
    Put the query's results in random order.
        
                            $this
    orderByRaw(string $sql, array $bindings = [])
        
    
    Add a raw "order by" clause to the query.
        
                            $this
    offset(int $value)
        
    
    Set the "offset" value of the query.
        
                            $this
    limit(int $value)
        
    
    Set the "limit" value of the query.
        
                            Builder|Builder
    forPageBeforeId(int $perPage = 15, int|null $lastId = 0, string $column = 'id')
        
    
    Constrain the query to the previous "page" of results before a given ID.
        
                            Builder|Builder
    forPageAfterId(int $perPage = 15, int|null $lastId = 0, string $column = 'id')
        
    
    Constrain the query to the next "page" of results after a given ID.
        
                    protected        array
    removeExistingOrdersFor(string $column)
        
    
    Get an array with all orders with a given column removed.
        
                            Builder|Builder
    union(Builder|Closure $query, bool $all = false)
        
    
    Add a union statement to the query.
        
                            $this
    lock(string|bool $value = true)
        
    
    Lock the selected rows in the table.
        
                            Builder
    lockForUpdate()
        
    
    Lock the selected rows in the table for updating.
        
                            Builder
    sharedLock()
        
    
    Share lock the selected rows in the table.
        
                            string
    toSql()
        
    
    Get the SQL representation of the query.
        
                            mixed|Builder
    find(int|string $id, array $columns = ['*'])
        
    
    Execute a query for a single record by ID.
        
                            mixed
    value(string $column)
        
    
    Get a single column's value from the first result of a query.
        
                            Collection
    get(array|string $columns = ['*'])
        
    
    Execute the query as a "select" statement.
        
                    protected        array
    runSelect()
        
    
    Run the query as a "select" statement against the connection.
        
                            LengthAwarePaginator
    paginate(int $perPage = 15, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
        
    
    Paginate the given query into a simple paginator.
        
                            Paginator
    simplePaginate(int $perPage = 15, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
        
    
    Get a paginator only supporting simple next and previous links.
This is more efficient on larger data-sets, etc.
        
                            int
    getCountForPagination(array $columns = ['*'])
        
    
    Get the count of the total records for the paginator.
        
                    protected        array
    runPaginationCountQuery(array $columns = ['*'])
        
    
    Run a pagination count query.
        
                    protected        array
    withoutSelectAliases(array $columns)
        
    
    Remove the column aliases since they will break count queries.
        
                            LazyCollection
    cursor()
        
    
    Get a lazy collection for the given query.
        
                    protected        void
    enforceOrderBy()
        
    
    Throw an exception if the query doesn't have an orderBy clause.
        
                            Collection
    pluck(string $column, string|null $key = null)
        
    
    Get an array with the values of a given column.
        
                    protected        string|null
    stripTableForPluck(string $column)
        
    
    Strip off the table name or alias from a column identifier.
        
                    protected        Collection
    pluckFromObjectColumn(array $queryResult, string $column, string $key)
        
    
    Retrieve column values from rows represented as objects.
        
                    protected        Collection
    pluckFromArrayColumn(array $queryResult, string $column, string $key)
        
    
    Retrieve column values from rows represented as arrays.
        
                            string
    implode(string $column, string $glue = '')
        
    
    Concatenate values of a given column as a string.
        
                            bool
    exists()
        
    
    Determine if any rows exist for the current query.
        
                            bool
    doesntExist()
        
    
    Determine if no rows exist for the current query.
        
                            mixed
    existsOr(Closure $callback)
        
    
    Execute the given callback if no rows exist for the current query.
        
                            mixed
    doesntExistOr(Closure $callback)
        
    
    Execute the given callback if rows exist for the current query.
        
                            int
    count(string $columns = '*')
        
    
    Retrieve the "count" result of the query.
        
                            mixed
    min(string $column)
        
    
    Retrieve the minimum value of a given column.
        
                            mixed
    max(string $column)
        
    
    Retrieve the maximum value of a given column.
        
                            mixed
    sum(string $column)
        
    
    Retrieve the sum of the values of a given column.
        
                            mixed
    avg(string $column)
        
    
    Retrieve the average of the values of a given column.
        
                            mixed
    average(string $column)
        
    
    Alias for the "avg" method.
        
                            mixed
    aggregate(string $function, array $columns = ['*'])
        
    
    Execute an aggregate function on the database.
        
                            float|int
    numericAggregate(string $function, array $columns = ['*'])
        
    
    Execute a numeric aggregate function on the database.
        
                    protected        $this
    setAggregate(string $function, array $columns)
        
    
    Set the aggregate property without running the query.
        
                    protected        mixed
    onceWithColumns(array $columns, callable $callback)
        
    
    Execute the given callback while selecting the given columns.
After running the callback, the columns are reset to the original value.
        
                            bool
    insert(array $values)
        
    
    Insert a new record into the database.
        
                            int
    insertOrIgnore(array $values)
        
    
    Insert a new record into the database while ignoring errors.
        
                            int
    insertGetId(array $values, string|null $sequence = null)
        
    
    Insert a new record and get the value of the primary key.
        
                            int
    insertUsing(array $columns, Closure|Builder|string $query)
        
    
    Insert new records into the table using a subquery.
        
                            int
    update(array $values)
        
    
    Update a record in the database.
        
                            bool
    updateOrInsert(array $attributes, array $values = [])
        
    
    Insert or update a record matching the attributes, and fill it with values.
        
                            int
    increment(string $column, float|int $amount = 1, array $extra = [])
        
    
    Increment a column's value by a given amount.
        
                            int
    decrement(string $column, float|int $amount = 1, array $extra = [])
        
    
    Decrement a column's value by a given amount.
        
                            int
    delete(mixed $id = null)
        
    
    Delete a record from the database.
        
                            void
    truncate()
        
    
    Run a truncate statement on the table.
        
                            Builder
    newQuery()
        
    
    Get a new instance of the join clause builder.
        
                    protected        Builder
    forSubQuery()
        
    
    Create a new query instance for sub-query.
        
                            Expression
    raw(mixed $value)
        
    
    Create a raw database expression.
        
                            array
    getBindings()
        
    
    Get the current query value bindings in a flattened array.
        
                            array
    getRawBindings()
        
    
    Get the raw array of bindings.
        
                            $this
    setBindings(array $bindings, string $type = 'where')
        
    
    Set the bindings on the query builder.
        
                            $this
    addBinding(mixed $value, string $type = 'where')
        
    
    Add a binding to the query.
        
                            $this
    mergeBindings(Builder $query)
        
    
    Merge an array of bindings into our bindings.
        
                    protected        array
    cleanBindings(array $bindings)
        
    
    Remove all of the expressions from a list of bindings.
        
                    protected        mixed
    flattenValue(mixed $value)
        
    
    Get a scalar type value from an unknown type of input.
        
                    protected        string
    defaultKeyName()
        
    
    Get the default key name of the table.
        
                            ConnectionInterface
    getConnection()
        
    
    Get the database connection instance.
        
                            Processor
    getProcessor()
        
    
    Get the database query processor instance.
        
                            Grammar
    getGrammar()
        
    
    Get the query grammar instance.
        
                            $this
    useWritePdo()
        
    
    Use the write pdo for query.
        
                    protected        bool
    isQueryable(mixed $value)
        
    
    Determine if the value is a query builder instance or a Closure.
        
                            Builder
    cloneWithout(array $properties)
        
    
    Clone the query without the given properties.
        
                            Builder
    cloneWithoutBindings(array $except)
        
    
    Clone the query without the given bindings.
        
                            $this
    dump()
        
    
    Dump the current SQL and bindings.
        
                            void
    dd()
        
    
    Die and dump the current SQL and bindings.
        
                            $this
    on(Closure|string $first, string|null $operator = null, Expression|string|null $second = null, string $boolean = 'and')
        
    
    Add an "on" clause to the join.
On clauses can be chained, e.g.
$join->on('contacts.user_id', '=', 'users.id') ->on('contacts.info_id', '=', 'info.id')
will produce the following SQL:
on contacts.user_id = users.id and contacts.info_id = info.id
        
                            JoinClause
    orOn(Closure|string $first, string|null $operator = null, string|null $second = null)
        
    
    Add an "or on" clause to the join.
        
                    protected        Builder
    newParentQuery()
        
    
    Create a new parent query instance.