You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
2.3 KiB
PHTML
93 lines
2.3 KiB
PHTML
8 months ago
|
<?php
|
||
|
/**
|
||
|
* The joins functions.
|
||
|
*
|
||
|
* @since 1.0.0
|
||
|
* @package RankMath
|
||
|
* @subpackage RankMath\Admin\Database
|
||
|
* @author RankMath <support@rankmath.com>
|
||
|
*/
|
||
|
|
||
|
namespace RankMath\Admin\Database;
|
||
|
|
||
|
/**
|
||
|
* Joins class.
|
||
|
*/
|
||
|
trait Joins {
|
||
|
|
||
|
/**
|
||
|
* Generate left join clause.
|
||
|
*
|
||
|
* @param string $table The SQL table.
|
||
|
* @param mixed $column1 The SQL Column.
|
||
|
* @param mixed $column2 The SQL Column.
|
||
|
* @param string $operator The Operator.
|
||
|
* @param string $alias The table alias.
|
||
|
*
|
||
|
* @return self The current query builder.
|
||
|
*/
|
||
|
public function leftJoin( $table, $column1, $column2, $operator = '=', $alias = '' ) { // @codingStandardsIgnoreLine
|
||
|
if ( empty( $table ) || empty( $column1 ) || empty( $column2 ) ) {
|
||
|
return $this;
|
||
|
}
|
||
|
|
||
|
if ( ! empty( $alias ) ) {
|
||
|
$table = "{$table} AS {$alias}";
|
||
|
}
|
||
|
|
||
|
$this->add_sql_clause( 'left_join', "LEFT JOIN {$table} ON {$column1} {$operator} {$column2}" );
|
||
|
|
||
|
return $this;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Generate right join clause.
|
||
|
*
|
||
|
* @param string $table The SQL table.
|
||
|
* @param mixed $column1 The SQL Column.
|
||
|
* @param mixed $column2 The SQL Column.
|
||
|
* @param string $operator The Operator.
|
||
|
* @param string $alias The table alias.
|
||
|
*
|
||
|
* @return self The current query builder.
|
||
|
*/
|
||
|
public function rightJoin( $table, $column1, $column2, $operator = '=', $alias = '' ) { // @codingStandardsIgnoreLine
|
||
|
if ( empty( $table ) || empty( $column1 ) || empty( $column2 ) ) {
|
||
|
return $this;
|
||
|
}
|
||
|
|
||
|
if ( ! empty( $alias ) ) {
|
||
|
$table = "{$table} AS {$alias}";
|
||
|
}
|
||
|
|
||
|
$this->add_sql_clause( 'right_join', "RIGHT JOIN {$table} ON {$column1} {$operator} {$column2}" );
|
||
|
|
||
|
return $this;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Generate left join clause.
|
||
|
*
|
||
|
* @param string $table The SQL table.
|
||
|
* @param mixed $column1 The SQL Column.
|
||
|
* @param mixed $column2 The SQL Column.
|
||
|
* @param string $operator The Operator.
|
||
|
* @param string $alias The table alias.
|
||
|
*
|
||
|
* @return self The current query builder.
|
||
|
*/
|
||
|
public function join( $table, $column1, $column2, $operator = '=', $alias = '' ) { // @codingStandardsIgnoreLine
|
||
|
if ( empty( $table ) || empty( $column1 ) || empty( $column2 ) ) {
|
||
|
return $this;
|
||
|
}
|
||
|
|
||
|
if ( ! empty( $alias ) ) {
|
||
|
$table = "{$table} AS {$alias}";
|
||
|
}
|
||
|
|
||
|
$this->add_sql_clause( 'join', "JOIN {$table} ON {$column1} {$operator} {$column2}" );
|
||
|
|
||
|
return $this;
|
||
|
}
|
||
|
}
|