SubqueryNode.php
PHP
Path: src/Parsing/SQL/AST/SubqueryNode.php
<?php
namespace mini\Parsing\SQL\AST;
/**
* Subquery node - a SELECT statement used as a value expression
*
* Subqueries can appear in various contexts:
* - IN clause: WHERE id IN (SELECT user_id FROM orders)
* - Scalar comparison: WHERE count = (SELECT MAX(count) FROM stats)
* - EXISTS: WHERE EXISTS (SELECT 1 FROM orders WHERE user_id = users.id)
*
* The context determines how the subquery result is interpreted:
* - IN: uses all rows from first column
* - Scalar: expects exactly one row/column, errors otherwise
* - EXISTS: checks if any rows returned
*/
class SubqueryNode extends ASTNode implements ValueNodeInterface
{
public string $type = 'SUBQUERY';
public SelectStatement|UnionNode|WithStatement $query;
public function __construct(SelectStatement|UnionNode|WithStatement $query)
{
$this->query = $query;
}
}