ProgramingTip

MySQL 쿼리에서 UNION 및 LIMIT 작업 결합

bestdevel 2020. 12. 14. 20:36
반응형

MySQL 쿼리에서 UNION 및 LIMIT 작업 결합


나는이 채용 하고 있는 회사 테이블을, 나는 다음과 같은 기준을 따르는 20 일을 추출 할 :

  1. 두 (2) 개의 지명 된 회사의 회사
  2. 회사 당 최대 10 개의 일자리가 있습니다.

으로 다음 SELECT시도 UNION DISTINCT했지만 문제는 LIMIT 0,10전체 결과 집합에 적용 된다는 것입니다. 각 회사에 적용하고 싶습니다.

회사 당 10 개의 채용 정보가없는 경우 쿼리는 모든 채용 정보를 반환해야합니다.

SELECT c.name, j.title, j.`desc`, j.link 
  FROM jobs_job j
INNER JOIN companies_company c ON j.company_id = c.id
WHERE c.name IN ('Company1')
UNION DISTINCT
SELECT c.name, j.title, j.`desc`, j.link 
  FROM jobs_job j
INNER JOIN companies_company c ON j.company_id = c.id
WHERE c.name IN ('Company2')
ORDER by name, title
LIMIT 0,10

저는 MySQL을 처음 사용하는 경우 UNION 대신이 작업을 수행하는 더 현명한 방법이 있습니다. 모든 제안을 개선 할 수 있습니다.


문서 인용 ,

ORDER BY 또는 LIMIT를 선택에 적용 할 선택을 묶는 괄호 안에 절을 묶습니다.

(SELECT a FROM t1 WHERE a=10 AND B=1 ORDER BY a LIMIT 10)
UNION
(SELECT a FROM t2 WHERE a=11 AND B=2 ORDER BY a LIMIT 10);

참고 URL : https://stackoverflow.com/questions/1415328/combining-union-and-limit-operations-in-mysql-query

반응형