# give/4.16.8.1/src/Framework/QueryBuilder/Concerns/FromClause.php

GiveWP – Donation Plugin and Fundraising Platform, version 4.16.8.1. 59 lines.

- Page: https://pluginprobe.com/plugins/give/4.16.8.1/code/src/Framework/QueryBuilder/Concerns/FromClause.php
- Raw: https://pluginprobe.com/plugins/give/4.16.8.1/raw/src/Framework/QueryBuilder/Concerns/FromClause.php
- Modified: 2022-02-25T01:33:58+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/give/4.16.8.1/code/src/Framework/QueryBuilder/Concerns/FromClause.php#L10-L20`.

```php
<?php

namespace Give\Framework\QueryBuilder\Concerns;

use Give\Framework\Database\DB;
use Give\Framework\QueryBuilder\Clauses\From;
use Give\Framework\QueryBuilder\Clauses\RawSQL;

/**
 * @since 2.19.0
 */
trait FromClause
{
    /**
     * @var From[]
     */
    protected $froms = [];

    /**
     * @param  string|RawSQL  $table
     * @param  string|null  $alias
     *
     * @return $this
     */
    public function from($table, $alias = null)
    {
        $this->froms[] = new From($table, $alias);

        return $this;
    }

    /**
     * @return array|string[]
     */
    protected function getFromSQL()
    {
        if (empty($this->froms)) {
            return [];
        }

        return [
            'FROM ' . implode(
                ', ',
                array_map(function (From $from) {
                    if ($from->alias) {
                        return DB::prepare(
                            '%1s AS %2s',
                            $from->table,
                            $from->alias
                        );
                    }

                    return DB::prepare('%1s', $from->table);
                }, $this->froms)
            )
        ];
    }
}

```
