본문 바로가기
MySql

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

by 베이스 공부 2021. 1. 14.
반응형

Jobs Companies 테이블이 있으며 다음 기준을 충족하는 20 개의 작업을 추출하려고합니다.

UNION DISTINCT 와 함께 다음 SELECT 를 시도했지만 문제는 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를 individual SELECT, place the clause inside the parentheses that enclose SELECT :

(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);

 

참조 페이지 https://stackoverflow.com/questions/1415328

 

 

반응형

댓글