반응형
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
반응형
'MySql' 카테고리의 다른 글
MySQL mysqldump 명령에 대한 Windows 배치 파일 (0) | 2021.01.14 |
---|---|
MySQL 인덱스의 사용 통계를 찾으십니까? (0) | 2021.01.14 |
MySQL SQL Select 문 제한 및 설명 순서 (0) | 2021.01.14 |
MySQL mysql에서 마지막으로 삽입 된 자동 증가 ID 가져 오기 (0) | 2021.01.14 |
MySQL - JOIN only if a row exists from the left table (0) | 2021.01.14 |
댓글