Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Oracle] выборка уникальных данных из двух таблиц 
:(
    Опции темы
kentaro
Дата 14.12.2011, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 24.3.2009

Репутация: нет
Всего: нет



Есть две таблицы они связаны полем счёт.Как сделать выборку выбрать счета из одной таблицы и из другой чтоб они не повторялись? Заранее спасибо
PM MAIL   Вверх
LSD
Дата 14.12.2011, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 1
Всего: 538




M
LSD
Необходимо указывать СУБД(и, желательно, версию), чтоб не были даны ответы, которые для Вашей СУБД будут просто неприменимы.



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Zloxa
Дата 14.12.2011, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(kentaro @  14.12.2011,  15:07 Найти цитируемый пост)
.Как сделать выборку выбрать счета из одной таблицы и из другой чтоб они не повторялись? Заранее спасибо 

Код

select счет from одна_таблица union select счет from другая_таблица

На здоровье smile 


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
kentaro
Дата 15.12.2011, 07:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 24.3.2009

Репутация: нет
Всего: нет



LSD, База данных Oracle 11g

Добавлено через 3 минуты и 39 секунд
Zloxa
C Union идёт повтор счетов запрос берёт один счёт с одной таблицы и сдругой в итоге два одинаковых счёта  вот запрос 
Код

SELECT        t.ACCT_NUM, t.BALANCE, t.CURR_CODE, t.INST_ID, t.SUB_TYPE
FROM          ISS_SUBACCT_TAB t
WHERE        t.BALANCE >= 0 
AND t.sub_type = '4V0101'

union 

SELECT  a.acct_num,0,a.curr_code,a.inst_id,null     from iss_acct_tab a

Как можно исключить повторение?
PM MAIL   Вверх
Akina
Дата 15.12.2011, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



 smile  smile 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
AndreyIQ
Дата 15.12.2011, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 5.2.2007

Репутация: 3
Всего: 8



Выбрать все счета из первой таблицы и объединить с выборкой из второй только тех которых нет в первой:
Код

SELECT        t.ACCT_NUM, t.BALANCE, t.CURR_CODE, t.INST_ID, t.SUB_TYPE
FROM          ISS_SUBACCT_TAB t
WHERE        t.BALANCE >= 0 
AND t.sub_type = '4V0101'

union 

SELECT  a.acct_num,0,a.curr_code,a.inst_id,null     from iss_acct_tab a
where not exists
(
   SELECT        *
   FROM          ISS_SUBACCT_TAB t
   WHERE        t.BALANCE >= 0 
   AND t.sub_type = '4V0101'
   AND t.ACCT_NUM = a.ACCT_NUM
)

PM MAIL   Вверх
Zloxa
Дата 15.12.2011, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



AndreyIQ, в приведенном тобой примере, если ты взялся самостоятельно контролировать не повторяемость счета, наверное лучше было бы использовать union all, чтобы избежать лишней сортировки. 

Но так то вообще все выглядит так, как будто бы тут был бы уместен full outer join, жаль что с ключами ясность не внесена. Однако в оракле, по крайней мере в  ранних версиях, full outer был весьма глючен. На столько, что и по сей день его использовать ссыкотно, потому пусть будет union  smile 


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
kentaro
Дата 15.12.2011, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 24.3.2009

Репутация: нет
Всего: нет



AndreyIQ,  Спасибо то что нужно  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0905 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.