다음과 같은 쿼리는 sql이 약간 복잡 할 수 있습니다. 프레임 워크 laravel로 변환하는 데 문제가 있습니다. 프레임 워크의 laravel 쿼리 결과로 모든 것을 도와주세요. 내 문제는 여기에 laravel 프레임 워크에 하위 선택 쿼리를 만드는 방법을 모르겠다. 고마워.쿼리 작성기를 사용하여 Laravel의 형식이 무엇입니까?
SELECT
lin_users.status_employee_id,
lin_users.id,
lin_users.username,
lin_users.created,
lin_users.modified,
lin_employee_attributes.unit_code,
lin_employee_attributes.position_code,
lin_employee_attributes.begin_date,
lin_employee_attributes.end_date,
contactnumber.contact_id as phone_number,
contactmobile.contact_id as cell_number,
contactemail.contact_id as email
FROM lin_users
INNER JOIN lin_status_employees
ON lin_users.status_employee_id = lin_status_employees.id
INNER JOIN lin_people
ON lin_status_employees.person_id = lin_people.id
INNER JOIN lin_employee_attributes
ON lin_users.status_employee_id = lin_employee_attributes.status_employee_id
LEFT JOIN lin_contacts AS contactnumber
ON lin_people.id = contactnumber.person_id AND contactnumber.contact_type = 'Work Telephone'
LEFT JOIN lin_contacts AS contactmobile
ON lin_people.id = contactmobile.person_id AND contactmobile.contact_type = 'Mobile'
LEFT JOIN lin_contacts AS contactemail
ON lin_people.id = contactemail.person_id AND contactemail.contact_type = 'Email'
WHERE lin_employee_attributes.begin_date = '2016-11-07'
OR lin_employee_attributes.end_date = '2017-10-21'
GROUP BY lin_users.id,
lin_employee_attributes.unit_code,
lin_employee_attributes.position_code,
lin_employee_attributes.begin_date,
lin_employee_attributes.end_date, lin_people.id,
contactnumber.contact_id,
contactmobile.contact_id,
contactemail.contact_id;
이러한 원시 쿼리를 사용하는 것이 좋습니다. Laravel의 Eloquent는 쿼리 빌더이며 최적화 된 원시 쿼리만큼 효율적이지 않습니다. https://laravel.com/docs/5.4/database#running-queries – schellingerht
쿼리를 사용해 보았지만 결과 : 'SQLSTATE [42P01] : 정의되지 않은 테이블 : 7 오류 : 릴레이션 '사용자'가 존재하지 않습니다. LINE 1 : id = $ 1 인 사용자로부터 선택 * ^ (SQL : select * from id = 1 사용자) ' 데이터베이스의 사용자 테이블이 있지만. –