链表查询
Join DTS
ts
/**
* 表参数配置
*/
export interface TableConfig {
/**
* 表名
*/
name: string
/**
* 表别名
*/
alias?: string
}
export type TABLE_TYPE = string | TableConfig
export interface JOIN_ON_TYPE {
/**
* 连接字段名
*/
joinField: string
/**
* 主表字段名
*/
mainField: string
/**
* 主表表名或表别名
*/
mainTable: string
}
export interface JOIN_PARAM_TYPE {
/**
* 连接方式,默认:INNER JOIN
*/
type?: 'LEFT' | 'RIGHT'
/**
* 连接表配置信息
*/
t: TABLE_TYPE
/**
* 连接条件配置信息
*/
on: JOIN_ON_TYPE
}
Example
内连接
ts
import emysql from '@dpapejs/emysql'
// 数据库实例化
const mysql = new emysql({
password: '[db登录密码]',
user: '[db登录用户名]',
database: '访问数据库名称'
})
// t_products
const products = [
{
code: 'hw_Phone',
name: 'Huawei Phone',
type: 'phone'
}
]
// t_product_type
const t_product_type = [
{
type: 'phone',
cpu: '麒麟A1'
}
]
// 执行内连接查询
const result = await mysql.query({
t: 't_products',
fields: ['name', 'code', 'cpu'],
join: {
t: 't_product_type',
on: {
joinField: 'type',
mainField: 'type',
mainTable: 't_products'
}
}
})
// result:: [{ code: 'hw_Phone', name: 'Huawei Phone', cpu: '麒麟A1' }]
左连接
ts
import emysql from '@dpapejs/emysql'
// 数据库实例化
const mysql = new emysql({
password: '[db登录密码]',
user: '[db登录用户名]',
database: '访问数据库名称'
})
// t_user 数据
const user = [{ name: 'name1', department_id: 1 }]
// t_department 数据
const department = [{ name: '部门1', id: 1 }]
// 执行左连接查询
const result = await mysql.query({
t: 't_user',
fields: [
{ name: 'name', t: 't_user', alias: 'userName' },
{ name: 'name', t: 't_department', alias: 'departmentName' }
],
join: {
type: 'LEFT',
t: 't_department',
on: {
joinField: 'id',
mainField: 'department_id',
mainTable: 't_user'
}
}
})
// result:: [{ userName: 'name1', departmentName: '部门1' }]
右连接
ts
import emysql from '@dpapejs/emysql'
// 数据库实例化
const mysql = new emysql({
password: '[db登录密码]',
user: '[db登录用户名]',
database: '访问数据库名称'
})
// t_user 数据
const user = [{ name: 'name1', department_id: 1 }]
// t_department 数据
const department = [{ name: '部门1', id: 1 }]
// 执行左连接查询
const result = await mysql.query({
t: 't_user',
fields: [
{ name: 'name', t: 't_user', alias: 'userName' },
{ name: 'name', t: 't_department', alias: 'departmentName' }
],
join: {
type: 'RIGHT',
t: 't_department',
on: {
joinField: 'id',
mainField: 'department_id',
mainTable: 't_user'
}
}
})
// result:: [{ userName: 'name1', departmentName: '部门1' }]