Выберите отдельное значение в нескольких таблицах (sql) - PullRequest
5 голосов
/ 31 декабря 2010

HI,

У меня есть база данных с 3 таблицами TAB1, TAB2, TAB3, которые имеют точно такие же столбцы, например:

TAB1
cola, colb, colc, cold
TABB
cola, colb, colc, cold
...

Теперь я хотел бы найти все различныеЗначения "colb", это запрос:

SELECT DISTINCT colb FROM TAB1

Работает отлично, но теперь я буду искать все отличные значения "colb" в моих 3 таблицах: "TAB1", "TAB2", "TAB3":

SELECT DISTINCT colb FROM TAB1, TAB2, TAB3

И теперь SQL возвращает мне ошибку: «Столбец« colb »в списке полей неоднозначен». После некоторого поиска я понял, что это потому, что столбец «colb» существует в моих 3 таблицах.

Так как искать в моих 3 таблицах отличное значение из того же столбца?Я не могу использовать LEFT JOIN, потому что я хочу искать во всех трех таблицах, а не в одной из них.

У вас есть идея?Спасибо

Ответы [ 5 ]

5 голосов
/ 31 декабря 2010

Этот единственный запрос с объединением позаботится о различных значениях для вас.

select colb from tab1 union
  select colb from tab2 union
  select colb from tab3;
2 голосов
/ 31 декабря 2010
select colb from tab1 union 
select colb from tab2 union 
select colb from tab3
0 голосов
/ 31 декабря 2010

В sybase вы можете использовать синтаксис, опубликованный @cherouvim, вы можете представить подзапрос в виде таблицы.

Вы также можете использовать временные таблицы

select colb into #t1 from TAB1 
insert into #t1(colb) values(select colb from TAB2) 
insert into #t1(colb) values(select colb from TAB3) 
select distinct colb from #t1
0 голосов
/ 31 декабря 2010

ВЫБРАТЬ Отличительную колу от tab1 union

ВЫБРАТЬ Отличительную колу от tab2 union

ВЫБРАТЬ Отличительную колу от tab3

0 голосов
/ 31 декабря 2010
SELECT DISTINCT TAB1.colb,TAB2.colb,TAB3.colb FROM TAB1, TAB2, TAB3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...