Socket
Socket
Sign inDemoInstall

the-query-builder

Package Overview
Dependencies
0
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    the-query-builder

SQL Query Builder


Version published
Maintainers
1
Created

Readme

Source

Query Builder

Select

Available methods - select / selectRaw / distinct
const sql = (new QueryBuilder())
  .select('id', 'name', 'age')
  .from('table')
  .getSQL();

Generated SQL

SELECT id, name, age
FROM table

Column alias

const sql = (new QueryBuilder())
  .select({
    id: 'product_id',
    title: 'product_title'
  })
  .from('table')
  .getSQL();

Generated SQL:

SELECT id AS product_id, title AS product_title
FROM table

Distinct

const sql = (new QueryBuilder())
  .distinct()
  .select('category')
  .from('table')
  .getSQL();

Generated SQL:

SELECT DISTINCT category
FROM table

selectRaw

const sql = (new QueryBuilder())
  .selectRaw('SELECT one, two, three')
  .from('table')
  .getSQL();

Generated SQL

SELECT one, two, three
FROM table

By default, all columns will be selected from table.

const sql = (new QueryBuilder())
  .from('table')
  .getSQL();

Generated SQL

SELECT *
FROM table

From

const sql = (new QueryBuilder())
  .from('table')
  .getSQL();

Set multiple FROM

const sql = (new QueryBuilder())
  .from('table')
  .from('another_table')
  .getSQL();

Generated SQL

SELECT *
FROM table,
     another_table

Joins

Available methods - leftJoin / rightJoin / innerJoin / joinRaw / join

LEFT Join

const sql = (new QueryBuilder())
  .from('table')
  .leftJoin('another_table', 'id', 'another_id')
  .getSQL();

Generated SQL

SELECT *
FROM table
         LEFT JOIN another_table ON id = another_id

RIGHT Join

const sql = (new QueryBuilder())
  .from('table')
  .rightJoin('another_table', 'id', 'another_id')
  .getSQL();

Generated SQL

SELECT *
FROM table
         RIGHT JOIN another_table ON id = another_id

INNER Join

const sql = (new QueryBuilder())
  .from('table')
  .innerJoin('another_table', 'id', 'another_id')
  .getSQL();

Generated SQL

SELECT *
FROM table
         INNER JOIN another_table ON id = another_id

Join Raw

const sql = (new QueryBuilder())
  .from('table')
  .joinRaw('LEFT JOIN another_table t ON id = another_id')
  .getSQL();

Generated SQL

SELECT *
FROM table
         LEFT JOIN another_table t ON id = another_id

Advanced Join

  const sql = (new QueryBuilder())
  .from('table')
  .join(qb => {
    qb
      .leftJoin('another_table')
      .on('id', 'another_id')
      .and('other_column', 'something')
      .or('other_column', 'other_thing')
  })
  .getSQL();

Generated SQL

SELECT *
FROM table
         LEFT JOIN another_table ON id = another_id AND other_column = 'something' OR other_column = 'other_thing'

Where Clauses

Where

Available methods - where / orWhere
const sql = (new QueryBuilder())
  .where('id', 10)
  .from('table')
  .getSQL();

Generated SQL

SELECT *
FROM table
WHERE id = 10

Set multiple WHERE

const sql = (new QueryBuilder())
  .where('id', 10)
  .where('status', 'published')
  .from('table')
  .getSQL();

Generated SQL

SELECT *
FROM table
WHERE id = 10
  AND status = 'published'

Where IN

Available methods - whereIn / orWhereIn / whereNotIn / orWhereNotIn
const sql = (new QueryBuilder())
  .from('table')
  .whereIn('id', [10, 100])
  .getSQL();

Generated SQL

SELECT *
FROM table
WHERE id IN (10, 100)

Where BETWEEN

Available methods - whereBetween / orWhereBetween / whereNotBetween / orWhereNotBetween
const sql = (new QueryBuilder())
  .from('table')
  .whereBetween('id', 10, 100)
  .getSQL();

Generated SQL

SELECT *
FROM table
WHERE id BETWEEN 10 AND 100

Where LIKE Clauses

Available methods - whereLike / orWhereLike / whereNotLike / orWhereNotLike
const sql = (new QueryBuilder())
  .from('table')
  .whereLike('status', 'something')
  .getSQL();

Generated SQL

SELECT *
FROM table
WHERE status LIKE '%something%'

Where IS NULL

Available methods - whereIsNull / orWhereIsNull / whereIsNotNull / orWhereIsNotNull
const sql = (new QueryBuilder())
  .from('table')
  .whereIsNull('id')
  .getSQL();

Generated SQL

SELECT *
FROM table
WHERE id IS NULL

Where Subquery

const sql = (new QueryBuilder())
  .from('table')
  .whereIn('id', qb => {
    qb
      .select('another_id')
      .from('another_table')
      .where('category', 'something')
  })
  .getSQL();

Generated SQL

SELECT *
FROM table
WHERE id IN (SELECT another_id FROM another_table WHERE category = 'something')

Where Nested

const sql = (new QueryBuilder())
  .from('table')
  .where('status', 'published')
  .orWhere(qb => {
    qb
      .where('status', 'draft')
      .where('writing', 'locked')
  })
  .getSQL();

Generated SQL

SELECT *
FROM table
WHERE status = 'published'
   OR (status = 'draft' AND writing = 'locked')

Ordering, Grouping, Limit & Offset

Ordering

const sql = (new QueryBuilder())
  .from('table')
  .orderBy('id')
  .getSQL();

Generated SQL

SELECT *
FROM table
ORDER BY id ASC

Order by multiple columns

const sql = (new QueryBuilder())
  .from('table')
  .orderBy('id')
  .orderBy('column_one', 'DESC')
  .getSQL();

Generated SQL

SELECT *
FROM table
ORDER BY id ASC, column_one DESC

Grouping

Available methods - groupBy / having / orHaving / havingCount / orHavingCount / havingMin / orHavingMin / havingMax / orHavingMax / havingAvg / orHavingAvg / havingSum / orHavingSum / havingRaw
const sql = (new QueryBuilder())
  .from('table')
  .groupBy('id')
  .getSQL();

Generated SQL

SELECT *
FROM table
GROUP BY id

Having

const sql = (new QueryBuilder())
  .from('table')
  .groupBy('id')
  .having('id', '>', 10)
  .getSQL();

Generated SQL

SELECT *
FROM table
GROUP BY id
HAVING id > 10

Limit & Offset

Available methods - limit / offset

Limit

const sql = (new QueryBuilder())
  .from('table')
  .limit(10)
  .getSQL();

Generated SQL

SELECT *
FROM table
LIMIT 10

Offset

const sql = (new QueryBuilder())
  .from('table')
  .limit(10)
  .offset(10)
  .getSQL();

Generated SQL

SELECT *
FROM table
LIMIT 10 OFFSET 10

Union

Available methods - union / unionAll

Union

const builder1 = (new QueryBuilder())
  .select('something')
  .from('table');

const sql = (new QueryBuilder())
  .select('something_else')
  .from('another_table')
  .union(builder1)
  .getSQL();

Generated SQL

SELECT something_else
FROM another_table
UNION
SELECT something
FROM table

Union ALL

const builder1 = (new QueryBuilder())
  .select('something')
  .from('table');

const builder2 = (new QueryBuilder())
  .select('another_thing')
  .from('another_table');

const sql = (new QueryBuilder())
  .select('something_else')
  .from('some_table')
  .unionAll(builder1, builder2)
  .getSQL();

Generated SQL

SELECT something_else
FROM some_table
UNION ALL
SELECT something
FROM table
UNION ALL
SELECT another_thing
FROM another_table

Keywords

FAQs

Last updated on 04 Jul 2022

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc