(
table: SqlTable,
select: SqlResultColumnSelector = null,
where?: SqlCondition,
limit?: number | undefined,
...joins: SqlJoin[]
)
| 394 | } |
| 395 | |
| 396 | selectQuery( |
| 397 | table: SqlTable, |
| 398 | select: SqlResultColumnSelector = null, |
| 399 | where?: SqlCondition, |
| 400 | limit?: number | undefined, |
| 401 | ...joins: SqlJoin[] |
| 402 | ): ExecutableSqlQuery { |
| 403 | let line = `SELECT ${this.createSelectQuery(select)}` |
| 404 | line += ` FROM "${table.name}"` |
| 405 | if (joins && joins.length > 0) { |
| 406 | joins.forEach((join) => { |
| 407 | const tableName: string = join.as ? join.as : join.targetTable |
| 408 | line += ` ${join.join ?? "INNER"} JOIN "${join.targetTable}"${join.as ? " " + join.as : ""}` |
| 409 | line += ` ON "${tableName}".${join.targetKey} = "${join.sourceTable ?? table.name}".${join.sourceKey}` |
| 410 | }) |
| 411 | } |
| 412 | let values: any[] = [] |
| 413 | if (where && Object.keys(where).length > 0) { |
| 414 | let i: [number] = [1] |
| 415 | const whereData = this.createSqlWhereCondition(table.name, where, i) |
| 416 | line += ` WHERE ${whereData[0]}` |
| 417 | values = whereData.slice(1) |
| 418 | } |
| 419 | if (limit && limit > 0) { |
| 420 | line += " LIMIT " + limit |
| 421 | } |
| 422 | return [ |
| 423 | line, |
| 424 | ...values |
| 425 | ] |
| 426 | } |
| 427 | |
| 428 | deleteQuery( |
| 429 | table: SqlTable, |
nothing calls this directly
no test coverage detected