2016-10-27 3 views
0

У меня есть таблица с двумя таблицами «travel.request» и таблица «travel_details».показать одну запись на основе id

travel_request table 
id name 
    1 aa 
    2 bb 
traveling_details table 
    id travel_request_id(FK from travel_request) country 
    1  1           UK 
    2  1           CL 
    3  2           Australia 
    4  2           India  

Я хочу перечислить только один записи для travel_request_id 1 записи для travel_request_id = 1 и travel_request_id = 2 вместе с travel_request детали стола и другие

$request = DB::table('travel_request') 
     ->join('department', 'travel_request.department_id', '=', 'department.id') 
     ->join('users', 'travel_request.approver_id', '=', 'users.id') 
     ->join('travel_purpose', 'travel_request.travel_purpose_id', '=', 'travel_purpose.id') 
     ->join('traveling_details', 'travel_request.id','=','traveling_details.travel_request_id') 
     ->join('country','country.id', '=', 'traveling_details.country_id') 
     ->join('travel_request_status','travel_request.status_id', '=', 'travel_request_status.id') 
     ->select('travel_request.*', 'travel_request.id as travel_id','department.name as dept_name','users.firstname as approver_name','travel_purpose.purpose','country.name as country_name','traveling_details.from_date','traveling_details.to_date','travel_request_status.status')->where('travel_request.requestor_id',$user_id)->paginate(2); 

этот запрос отображает все записи в таблице traveling_details

ответ

0

Возможно, вы использовали любой способ для ORM для транзакции с БД. Попытайтесь использовать LIMIT 1 в этом запросе.

0
SELECT * FROM `travel_request` 
join `travel_details` ON `travel_details`.`request_id` = `travel_request`.`request_id` 
    group by `travel_request`.`request_id` 

Я создал образец БД и прошел тот же путь. Вы должны понимать, что внутреннее соединение будет выбирать все строки из таблиц, когда условие «ON» соответствует. Если вы хотите только один ряд из travel_details, вы можете использовать GROUP BY для travel_request.id. Это выберет только первую строку условия соответствия. Надеюсь это поможет.

enter image description here enter image description hereenter image description here

Смежные вопросы