A super easy PHP Framework for web development!
https://github.com/exacti/phacil-framework
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
1.6 KiB
84 lines
1.6 KiB
<?php
|
|
|
|
/**
|
|
* Copyright © 2023 ExacTI Technology Solutions. All rights reserved.
|
|
* GPLv3 General License.
|
|
* https://exacti.com.br
|
|
* Phacil PHP Framework - https://github.com/exacti/phacil-framework
|
|
*/
|
|
|
|
namespace Phacil\Framework\MagiQL\Manipulation;
|
|
|
|
use Phacil\Framework\MagiQL\Api\Syntax\QueryPartInterface;
|
|
use Phacil\Framework\MagiQL\Api\QueryInterface;
|
|
|
|
/**
|
|
* Class Intersect.
|
|
*/
|
|
class Intersect implements QueryInterface, QueryPartInterface
|
|
{
|
|
const INTERSECT = 'INTERSECT';
|
|
|
|
/**
|
|
* @var array
|
|
*/
|
|
protected $intersect = [];
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function partName()
|
|
{
|
|
return 'INTERSECT';
|
|
}
|
|
|
|
/**
|
|
* @param Select $select
|
|
*
|
|
* @return $this
|
|
*/
|
|
public function add(Select $select)
|
|
{
|
|
$this->intersect[] = $select;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return array
|
|
*/
|
|
public function getIntersects()
|
|
{
|
|
return $this->intersect;
|
|
}
|
|
|
|
/**
|
|
* @throws QueryException
|
|
*
|
|
* @return \Phacil\Framework\MagiQL\Syntax\Table
|
|
*/
|
|
public function getTable()
|
|
{
|
|
throw new QueryException('INTERSECT does not support tables');
|
|
}
|
|
|
|
/**
|
|
* @throws QueryException
|
|
*
|
|
* @return \Phacil\Framework\MagiQL\Syntax\Where
|
|
*/
|
|
public function getWhere()
|
|
{
|
|
throw new QueryException('INTERSECT does not support WHERE.');
|
|
}
|
|
|
|
/**
|
|
* @throws QueryException
|
|
*
|
|
* @return \Phacil\Framework\MagiQL\Syntax\Where
|
|
*/
|
|
public function where()
|
|
{
|
|
throw new QueryException('INTERSECT does not support the WHERE statement.');
|
|
}
|
|
}
|
|
|