문제

나는있다 일자리 그리고 a 회사 표, 나는 다음 기준을 충족하는 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 대신 이것을하는 더 똑똑한 방법이있을 수 있으므로 개선에 대한 제안을 환영합니다.

도움이 되었습니까?

해결책

인용 문서,

개인 선택에 주문 또는 제한을 적용하려면 선택을 포함하는 괄호 안에 조항을 놓습니다.

(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);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top