2014-03-07 4 views
4

임 3 개의 mysql 문을 결합하려고합니다. 나는 UNION과 JOIN 키워드를 사용했지만, 내가 원하는 결과를 얻지는 못했다. 어떤 제안? 이것은 제 3 문장입니다.mysql에 4 개의 SELECT 쿼리를 결합하십시오.

SELECT * FROM entrancequestion 
WHERE Subject='Abstract Reasoning' 
ORDER BY RAND() 
LIMIT 10 

SELECT * FROM entrancequestion 
WHERE Subject='English' 
ORDER BY RAND() 
LIMIT 30 

SELECT * FROM entrancequestion 
WHERE Subject='Mathematics' 
ORDER BY RAND() 
LIMIT 30 

SELECT * FROM entrancequestion 
WHERE Subject='Science' 
ORDER BY RAND() 
LIMIT 30 

I 좋아해서 제 2 개 문장을 불러 시도 : t

30 개 행만을 출력하는 것을 특징으로 단지 제 LIMIT 쿼리를 판독하지만
SELECT * FROM entrancequestion 
WHERE Subject='Abstract Reasoning' 
LIMIT 10 
UNION 
SELECT * FROM entrancequestion 
WHERE Subject='English' 
ORDER BY RAND() 
LIMIT 30; 

.

총 100 개의 행이 색인에 따라 표시되고 임의 화되는 질의를 작성하고 싶습니다. 귀하의 도움을 많이 주시면 감사하겠습니다.

(SELECT * FROM entrancequestion WHERE Subject='Abstract Reasoning' LIMIT 10) 
UNION 
(SELECT * FROM entrancequestion WHERE Subject='English' ORDER BY RAND() LIMIT 30); 

답변

3

docs 인용 또는 LIMIT를 개별 SELECT에 넣고 SELECT 절을 묶는 괄호 안에 절을 넣습니다.

(SELECT * FROM entrancequestion 
WHERE Subject='Abstract Reasoning' 
ORDER BY RAND() 
LIMIT 10) 

UNION 

(SELECT * FROM entrancequestion 
WHERE Subject='English' 
ORDER BY RAND() 
LIMIT 30) 

UNION 

(SELECT * FROM entrancequestion 
WHERE Subject='Mathematics' 
ORDER BY RAND() 
LIMIT 30) 

UNION 

(SELECT * FROM entrancequestion 
WHERE Subject='Science' 
ORDER BY RAND() 
LIMIT 30) 
+1

롤을. 효과가있었습니다. 여러 쿼리를 사용할 때 괄호를 깜박입니다. 덕분에 –

+0

환영합니다 : D –

3

당신은 쿼리에 괄호를 사용할 필요가

가에 의해 ORDER를 적용하려면

SELECT TOP 10 * FROM entrancequestion 
WHERE Subject='Abstract Reasoning' 
UNION 
SELECT TOP 30 * FROM entrancequestion 
WHERE Subject='English' 
ORDER BY RAND() 
0

이 시도 :처럼, UNION과 LIMIT를 사용하는 경우

0

당신이 LIMIT 10을 갖는 첫 번째 대해 많이 신경 쓰지 않는 경우 :

SELECT * FROM entrancequestion 
WHERE 
    Subject='Abstract Reasoning' OR 
    Subject='English' OR 
    Subject='Mathematics' OR 
    Subject='Science' 
ORDER BY RAND() 
LIMIT 30 
+0

gud one. 하지만 테이블에서 10 가지 추상 추론 항목을 가져와야합니다. 어쨌든 껌 제안. 감사 –

관련 문제