Interface SQLBuilderPort

interface SQLBuilderPort {
    column(name: SQLBuilderField): SQLBuilderPort;
    column(name: SQLBuilderField, as: string): SQLBuilderPort;
    createBuilder(options?: SQLBuilderToSQLInputOptions): SQLBuilderPort;
    createConditions(): SQLBuilderConditionsPort;
    from(name: string): SQLBuilderPort;
    from(name: string, as: string): SQLBuilderPort;
    groupBy(column: SQLBuilderField): SQLBuilderPort;
    having(conditions: SQLBuilderConditionsPort): SQLBuilderPort;
    having(
        field: SQLBuilderField,
        value: SQLBuilderConditionValue,
    ): SQLBuilderPort;
    having(field: SQLBuilderField, value: FieldPort): SQLBuilderPort;
    having(
        field: SQLBuilderField,
        operator: SQLBuilderOperator,
        value: SQLBuilderConditionValue,
    ): SQLBuilderPort;
    having(
        field: SQLBuilderField,
        operator: SQLBuilderOperator,
        value: FieldPort,
    ): SQLBuilderPort;
    join(
        direction: SQLBuilderJoinDirection,
        table_name: string,
        condition: string,
    ): SQLBuilderPort;
    join(
        direction: SQLBuilderJoinDirection,
        table_name: string,
        as: string,
        condition: string,
    ): SQLBuilderPort;
    join(
        direction: SQLBuilderJoinDirection,
        subquery: SQLBuilderPort,
        as: string,
        condition: string,
    ): SQLBuilderPort;
    leftJoin(table_name: string, condition: string): SQLBuilderPort;
    leftJoin(
        subquery: SQLBuilderPort,
        as: string,
        condition: string,
    ): SQLBuilderPort;
    leftJoin(table_name: string, as: string, condition: string): SQLBuilderPort;
    limit(value: number): SQLBuilderPort;
    offset(value: number): SQLBuilderPort;
    orderBy(
        column: SQLBuilderField,
        order: SQLBuilderOrderDirection,
    ): SQLBuilderPort;
    select(statement: string): SQLBuilderPort;
    setOptions(options: SQLBuilderToSQLInputOptions): SQLBuilderPort;
    toSQL(
        options?: SQLBuilderToSQLInputOptions,
    ): [string, SQLBuilderBindingValue[]];
    where(
        field: SQLBuilderField,
        value: SQLBuilderConditionValue,
    ): SQLBuilderPort;
    where(field: SQLBuilderField, value: FieldPort): SQLBuilderPort;
    where(
        field: SQLBuilderField,
        value: SQLBuilderConditionExpressionPort,
    ): SQLBuilderPort;
    where(
        field: SQLBuilderField,
        operator: SQLBuilderOperator,
        value: SQLBuilderConditionValue,
    ): SQLBuilderPort;
    where(
        field: SQLBuilderField,
        operator: SQLBuilderOperator,
        value: FieldPort,
    ): SQLBuilderPort;
    where(
        field: SQLBuilderField,
        operator: SQLBuilderOperator,
        value: SQLBuilderConditionExpressionPort,
    ): SQLBuilderPort;
    where(conditions: SQLBuilderConditionsPort): SQLBuilderPort;
    where(expression: SQLBuilderConditionExpressionPort): SQLBuilderPort;
    where(
        expression: SQLBuilderConditionExpressionPort,
        value: SQLBuilderConditionValue,
    ): SQLBuilderPort;
    where(
        expression: SQLBuilderConditionExpressionPort,
        value: FieldPort,
    ): SQLBuilderPort;
}

Implemented by

Methods

  • Specified join.

    Parameters

    • direction: SQLBuilderJoinDirection
    • table_name: string
    • condition: string

    Returns SQLBuilderPort

  • Specified join with direction.

    Parameters

    • direction: SQLBuilderJoinDirection
    • table_name: string
    • as: string
    • condition: string

    Returns SQLBuilderPort

  • Specified join with SQLBuilder subquery.

    Parameters

    • direction: SQLBuilderJoinDirection
    • subquery: SQLBuilderPort
    • as: string
    • condition: string

    Returns SQLBuilderPort

  • Sepcified left join

    builder.leftJoin('passport', 'passport.id = user.passport_id')
    // LEFT JOIN `passport` ON passport.id = user.passport_id

    Parameters

    • table_name: string
    • condition: string

    Returns SQLBuilderPort

  • Specified left join with SQLBuilder subquery

    builder.leftJoin(
    createBuilder().from('user_logged').column('MAX(logged_at)', 'last_logged_at').where('user_id', 'u.id').groupBy('user_id'),
    'ul',
    'ul.user_id = u.id'
    )
    // LEFT JOIN (SELECT MAX(logged_at) AS `last_logged_at` FROM `user_logged` WHERE `user_id` = u.id GROUP BY `user_id`) AS `ul` ON ul.user_id = u.id

    Parameters

    Returns SQLBuilderPort

  • Specified left join with table alias.

    builder.leftJoin('passport', 'p', 'p.id = user.passport_id')
    // LEFT JOIN `passport` AS `p` ON p.id = user.passport_id

    Parameters

    • table_name: string
    • as: string
    • condition: string

    Returns SQLBuilderPort

  • Set a custom SELECT statement.

    builder.select('COUNT(*) AS total')
    // SELECT COUNT(*) AS total

    Parameters

    • statement: string

      Custom SELECT statement

    Returns SQLBuilderPort