Присоединяйтесь к двум запросам Oracle - PullRequest
2 голосов
/ 09 июня 2010

Мне нужно сделать запрос из двух таблиц и получить один результат ... как я могу объединить эти два запроса?

Первый запрос выполняется из двух таблиц, а второй только из одной.

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 order by pt.promorow,pt.promocolumn

select  pt.id,pt.promorow,pt.promocolumn,pt.type,pt.image,pt.style,pt.quota_allowed from promotables pt where pt.type='heading'

1 Ответ

4 голосов
/ 09 июня 2010

Используйте 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 ALL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...