복붙노트

[SQL] MySQL의 쿼리에서 UNION과 LIMIT 작업을 결합

SQL

MySQL의 쿼리에서 UNION과 LIMIT 작업을 결합

나는 잡스와 회사 테이블을 가지고 있고, 나는 다음과 같은 기준을 충족하는 20 일을 추출 할 :

나는 DISTINCT UNION 다음과 같은 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

나는 개선을위한 제안 확실히 환영 있도록, 그래서 대신에 UNION과의이 작업을 수행 할 수있는 스마트 한 방법이 될 수 실현, MySQL로 새로운입니다.

해결법

  1. ==============================

    1.워드 프로세서를 인용,

    워드 프로세서를 인용,

    (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);
    
  2. from https://stackoverflow.com/questions/1415328/combining-union-and-limit-operations-in-mysql-query by cc-by-sa and MIT license