0
2 단계 하위 하위 쿼리에 tv_main 별칭을 사용할 수 없기 때문에 현재 여기에 붙어 있고 다음에 수행 할 작업을 알지 못합니다. 여기에 내 코드가있다. (나는 문제가있는 부분을 주석으로 처리했다.) 어떤 도움을 주시면 감사하겠습니다. 감사.mysql은 외부 별칭을 2 단계 깊은 하위 쿼리로 사용합니다.
SELECT tv_main.id,
tv_main.vesselName,
(
SELECT SUM(t_statCtr.status = 'EX CREW')
FROM
(
(
SELECT tpi_stat.id,
tvv.vesselName,
lastname,
firstname,
middlename,
IF(tpi_stat.returningCrew = 1, 'NEW HIRE',
IF(COUNT(tc_ctr.personnel_id) > 1, 'EX CREW', 'NEW HIRE')
)
AS status
FROM tbl_contracts AS tc_stat
LEFT JOIN tbl_personnel_info AS tpi_stat
ON tpi_stat.id = tc_stat.personnel_id
LEFT JOIN tbl_contracts AS tc_ctr
ON tpi_stat.id = tc_ctr.personnel_id
LEFT JOIN tbl_vessels AS tvv
ON tvv.id = tpi_stat.lastJoinedVsl
WHERE
tpi_stat.emp_status = 'ON-BOARD'
AND tc_stat.status = 'ACTIVE'
AND tvv.id = tv_main.id --This line have an error, (Unknown Column tv_main.id in where clause)
GROUP BY tc_stat.personnel_id
) AS t_statCtr
)
) AS ex_crew,
NULL AS new_hire
FROM tbl_vessels AS tv_main -- I need this one to use inside the subquery
LEFT JOIN tbl_personnel_info AS tpi
ON tv_main.id = tpi.lastJoinedVsl
LEFT JOIN tbl_contracts AS tc
ON tpi.id = tc.personnel_id
WHERE
tpi_stat.emp_status = 'ON-BOARD'
AND tc_stat.status = 'ACTIVE'
GROUP BY tv_main.vesselName
Gosh. 나는 무엇을해야할지 전혀 모른다. 주로 당신이 * 원하는 * 것을 설명하지 않았기 때문에. 샘플 데이터, 원하는 결과 및 원하는 결과에 대한 설명으로 다른 질문을 시도하십시오. –
죄송합니다. 알아낼 수 있습니다. –