Я в настоящее время храню addresses
для нескольких разных объектов. Таким образом, есть addresses
для jobs
, companies
и т.д.SQL Union 1 Column in Larger Query с Laravel ORM?
Я хочу, чтобы иметь возможность получить все addresses.*
и объединение jobs.job_title
& companies.company_name
выбрать object_name
для каждого addresses
записи.
Address.php (модель)
static $object_type = [
1 => 'Company',
2 => 'Job',
];
static public function getObjectTypes() {
return self::$object_type;
}
static public function getObjectTypeName($key) {
return self::$object_type[$key];
}
static public function getAddresses(){
$addresses = Address::select(
'addresses.*'
)->where('addresses.soft_deleted', 0);
$addresses->limit(20);
return $addresses->get();
}
Текущая схема для addresses
таблицы: +-------------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------------+---------------------+------+-----+---------+----------------+ | id | int(12) unsigned | NO | PRI | NULL | auto_increment | | object_id | int(12) | YES | MUL | 0 | | | object_type | tinyint(3) | YES | | 1 | | | address | varchar(255) | YES | | NULL | | | soft_deleted | tinyint(3) unsigned | YES | | 0 | | | created_at | datetime | NO | | NULL | | | updated_at | datetime | NO | | NULL | | +-------------------+---------------------+------+-----+---------+----------------+
Текущая схема для jobs
таблицы: +-----------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------+---------------------+------+-----+---------+----------------+ | id | int(12) unsigned | NO | PRI | NULL | auto_increment | | company_id | int(12) | YES | | 0 | | | job_title | varchar(99) | YES | | NULL | | | soft_deleted | tinyint(3) unsigned | YES | | 0 | | | created_at | datetime | NO | | NULL | | | updated_at | datetime | NO | | NULL | +-----------------+---------------------+------+-----+---------+----------------+
Текущая схема для companies
таблицы: +-----------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------+---------------------+------+-----+---------+----------------+ | id | int(12) unsigned | NO | PRI | NULL | auto_increment | | company_name | varchar(99) | YES | | NULL | | | soft_deleted | tinyint(3) unsigned | YES | | 0 | | | created_at | datetime | NO | | NULL | | | updated_at | datetime | NO | | NULL | +-----------------+---------------------+------+-----+---------+----------------+
Мой вопрос: Как создать объединение и вернуть данные, необходимые на основе вышеуказанной структуры?
Это замечательный Пол - спасибо. Я просто собираюсь принять ваш ответ. Я ценю, что вы тратите время на это. – learn
Я приму благодарность за 20 часов LOL – learn