2010-06-09 2 views
2

두 테이블에서 쿼리를하고 하나의 결과가 필요합니다. 어떻게이 두 쿼리를 결합 할 수 있습니까?두 개의 Oracle 쿼리에 가입하십시오.

첫 번째 쿼리는 두 테이블에서 쿼리하는 것이고 두 번째 쿼리는 두 테이블에서 쿼리하는 것입니다.

+0

당신이 그들을 쿼리를 JOIN 또는 연결하는 하시겠습니까? 이것은 SQL에서 다른 것을 의미합니다. 조인은 일반적으로 조인 기준 ('a.col = b.col의 조인 b에서 선택)을 의미하는 반면 연결은 단지 하나의 쿼리 결과를 다른 쿼리에 추가하는 것입니다 (예 : 'UNION'또는 'UNION ALL'을 통해). –

답변

4

UNION 또는 UNION ALL을 사용하십시오. 동일한 수의 열이 있고 원하는 유형을 수행 할 수있는 호환 가능한 유형이어야합니다.

SELECT pt.id, pt.promorow, pt.promocolumn, pt.type, pt.image, pt.style, pt.quota_allowed, ptc.text, pq.quota_left 
FROM promotables pt, promogroups pg, promotablecontents ptc, promoquotas pq 
WHERE pt.id_promogroup = 1 
AND ptc.country ='049' 
AND ptc.id_promotable = pt.id 
AND pt.id_promogroup = pg.id 
AND pq.id_promotable = pt.id 
UNION 
SELECT pt.id, pt.promorow, pt.promocolumn, pt.type, pt.image, pt.style, pt.quota_allowed, NULL, NULL 
FROM promotables pt 
WHERE pt.type='heading' 
ORDER BY 2, 3 

당신이 (두 쿼리에서 오는 예컨대 동일한 행) 중복을 표시하려면, UNION을 사용하는 모든

+0

첫 번째 쿼리의 경우 숫자 결과 열이 더 .. – coder247

+0

다른 쿼리의 열에 대해 NULL을 선택하기 만하면됩니다. 즉, 여전히 열을 가져오고 쿼리 1의 결과에는 데이터가있을 수 있지만 쿼리 2의 행에는 항상 해당 열의 NULL이 포함됩니다. –

관련 문제