现在我需要把地址表和被连接的子表连接起来,因为我也需要每个子表的地址。我唯一的问题是,如何根据childs.address_id加入表地址?
我已经尝试过了:
INNER JOIN `addresses` AS `addresse_child` ON `childs`.`address_id` = `addresses`.`id`
很遗憾,没有工作……
我的SQL查询(db::getquerylog())
SELECT `assignments`.`id` AS `assignment_id`,
`assignments`.`persons` AS `assignment_persons`,
`assignments`.`start_date` AS `assignment_start_date`,
`assignments`.`end_date` AS `assignment_end_date`,
`addresses`.`id` AS `address_id`,
`addresses`.`first_name` AS `address_first_name`,
`addresses`.`last_name` AS `address_last_name`,
`addresses`.`company` AS `address_company`,
`childs`.`id` AS `child_id`,
`childs`.`address_id` AS `child_address_id`,
`childs`.`sibling_id` AS `child_sibling_id`,
`childs`.`height` AS `child_height`,
`childs`.`weight` AS `child_weight`
FROM `assignments`
INNER JOIN `addresses` ON `assignments`.`address_id` = `addresses`.`id`
INNER JOIN `childs` ON `assignments`.`id` = `childs`.`assignment_id`
WHERE `assignments`.`deleted_at` IS NULL
AND `addresses`.`deleted_at` IS NULL
AND `childs`.`deleted_at` IS NULL
我的laravel sql命令:
$assignment_data = DB::table('assignments')
->join('addresses', 'assignments.address_id', '=', 'addresses.id')
->join('childs', 'assignments.id', '=', 'childs.assignment_id')
->select(
'assignments.id as assignment_id',
'assignments.persons as assignment_persons',
'assignments.start_date as assignment_start_date',
'assignments.end_date as assignment_end_date',
'addresses.id as address_id',
'addresses.first_name as address_first_name',
'addresses.last_name as address_last_name',
'addresses.company as address_company',
'childs.id as child_id',
'childs.address_id as child_address_id',
'childs.sibling_id as child_sibling_id',
'childs.height as child_height',
'childs.weight as child_weight'
)
->whereNull('assignments.deleted_at')
->whereNull('addresses.deleted_at')
->whereNull('childs.deleted_at')
->get();