ok. 그것의 이상한, 나는 group_by를 사용하고 결합하고있다mysql은 조인 된 레코드의 총 행 수를 얻습니다.
여기있다 질문이있다.
SELECT *
FROM (`emp_skills` ES)
INNER JOIN `employee` E ON `E`.`employee_id`= `ES`.`employee_id`
INNER JOIN `ml_skill_type` MLST ON `MLST`.`skill_type_id` = `ES`.`ml_skill_type_id`
INNER JOIN `employment` ET ON `ET`.`employee_id` = `E`.`employee_id`
INNER JOIN `position_management` PM ON `PM`.`employement_id`=`ET`.`employment_id` AND PM.current=1
INNER JOIN `ml_designations` MLD ON `MLD`.`ml_designation_id`=`PM`.`ml_designation_id`
LEFT JOIN `assign_job` AJ ON `AJ`.`employee_id` = `E`.`employee_id`
LEFT JOIN `ml_projects` MLP ON `MLP`.`project_id` = `AJ`.`project_id`
GROUP BY `E`.`employee_id`
여기까지의 결과가 있습니다.
하지만 이것을 사용하면.
SELECT COUNT(*) AS numrows
다음 내 쿼리는
SELECT COUNT(*) AS numrows
FROM (`emp_skills` ES)
INNER JOIN `employee` E ON `E`.`employee_id`= `ES`.`employee_id`
INNER JOIN `ml_skill_type` MLST ON `MLST`.`skill_type_id` = `ES`.`ml_skill_type_id`
INNER JOIN `employment` ET ON `ET`.`employee_id` = `E`.`employee_id`
INNER JOIN `position_management` PM ON `PM`.`employement_id`=`ET`.`employment_id` AND PM.current=1
INNER JOIN `ml_designations` MLD ON `MLD`.`ml_designation_id`=`PM`.`ml_designation_id`
LEFT JOIN `assign_job` AJ ON `AJ`.`employee_id` = `E`.`employee_id`
LEFT JOIN `ml_projects` MLP ON `MLP`.`project_id` = `AJ`.`project_id`
GROUP BY `E`.`employee_id`
이되고이 내가 단지 1 열 및 난 나에게 총 행을 보여 추측 행을 받아야 내가 무엇입니까 이상한 결과입니다. 하지만 여기는 내가 얻는 것입니다.
이 쿼리를 수정하는 방법 ?? 나는 여기에 내 질문에 ..
이 주석 GROUP_CONCAT와 쿼리가 설명하고
SELECT
`E`.`employee_id`,
`E`.`full_name`,
`MLD`.`designation_name`#,
#GROUP_CONCAT(DISTINCT MLP.project_title) AS Projects,
#GROUP_CONCAT(DISTINCT MLST.skill_name) AS EmployeeSkills
FROM (`emp_skills` ES)
INNER JOIN `employee` E ON `E`.`employee_id`= `ES`.`employee_id`
INNER JOIN `ml_skill_type` MLST ON `MLST`.`skill_type_id` = `ES`.`ml_skill_type_id`
INNER JOIN `employment` ET ON `ET`.`employee_id` = `E`.`employee_id`
INNER JOIN `position_management` PM ON `PM`.`employement_id`=`ET`.`employment_id` AND PM.current=1
INNER JOIN `ml_designations` MLD ON `MLD`.`ml_designation_id`=`PM`.`ml_designation_id`
LEFT JOIN `assign_job` AJ ON `AJ`.`employee_id` = `E`.`employee_id`
LEFT JOIN `ml_projects` MLP ON `MLP`.`project_id` = `AJ`.`project_id`
#GROUP BY `E`.`employee_id`
LIMIT 25
을 GROUP_BY와없는 경우
메신저 미안의 결과입니다. 위의 이미지에는 16 개의 레코드가 포함되어 있습니다. group_concat 및 group_by를 사용하면 6 개의 레코드가 생성됩니다. 내가 실제로 원하는
, 내가 대신 내가 쉼표 등 값
하지만 어떻게 MySQL의에서 반환되는 행 수 쿼리 알고 알고를 구분하려면, 반복 직원 이름을 돼요.
하지만 16 레코드를 표시하는 동안 나는 그룹별로 6 레코드를 얻습니다. ?? 그래서 내가 페이지 번호 매김에 사용되는 행의 번호를 얻고 싶습니다. –
COUNT (*)없이 16 개의 recors가 COUNT (*)가 '16'이라는 내용으로 한 행을 줄 것입니까? –
예. 사실,하지만 난 16 레코드 싶지 않아 ?? 나는 왜 내가 group_by와 group_concat을 사용하고 있는지 반복 할 필요가 없다는 것을 의미 하는가? 그러면이 문제를 어떻게 해결할 수 있습니까? –