34 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace Core\Driver\SQL\Join;
 | |
| 
 | |
| use Core\Driver\SQL\Column\Column;
 | |
| use Core\Driver\SQL\Condition\Compare;
 | |
| 
 | |
| class Join {
 | |
| 
 | |
|   private string $type;
 | |
|   private string $table;
 | |
|   private string $columnA;
 | |
|   private string $columnB;
 | |
|   private ?string $tableAlias;
 | |
|   private array $conditions;
 | |
| 
 | |
|   public function __construct(string $type, string $table, string $columnA, string $columnB, ?string $tableAlias = null, array $conditions = []) {
 | |
|     $this->type = $type;
 | |
|     $this->table = $table;
 | |
|     $this->columnA = $columnA;
 | |
|     $this->columnB = $columnB;
 | |
|     $this->tableAlias = $tableAlias;
 | |
|     $this->conditions = $conditions;
 | |
|     array_unshift($this->conditions , new Compare($columnA, new Column($columnB), "="));
 | |
|   }
 | |
| 
 | |
|   public function getType(): string { return $this->type; }
 | |
|   public function getTable(): string { return $this->table; }
 | |
|   public function getColumnA(): string { return $this->columnA; }
 | |
|   public function getColumnB(): string { return $this->columnB; }
 | |
|   public function getTableAlias(): ?string { return $this->tableAlias; }
 | |
|   public function getConditions(): array { return $this->conditions; }
 | |
| 
 | |
| } | 
