Re[2]: как выбрать данные из двух таблиц?
От: vmpire Россия  
Дата: 04.09.08 11:55
Оценка: +1
Здравствуйте, ironwit, Вы писали:

I>Здравствуйте, <Аноним>, Вы писали:


А>>Здавствуйте,


А>>у меня есть 2 разные таблицы: tab1 и tab2. Они никак не связаны между собой, и в каждой есть поле email.


А>>Мне нужно в одном запросе выбрать все емайлы из обеих таблиц (а перед этим — количество записей)

А>>Нужен именно один запрос так как используется pagination для вывода результата.

I>
I>select distinct * from (
I>select tab1.email FROM tab1
I>union all
I>select tab2.email FROM tab2)
I>


I>ЗюЫю

I>не помню для union параметра который обьединяет только уникальные строки, если найдешь — тогда главный запрос можно выбросить

select tab1.email FROM tab1
union
select tab2.email FROM tab2
Re[2]: как выбрать данные из двух таблиц?
От: zanimon  
Дата: 04.09.08 11:59
Оценка: +1
Здравствуйте, ironwit, Вы писали:

I>ЗюЫю

I>не помню для union параметра который обьединяет только уникальные строки, если найдешь — тогда главный запрос можно выбросить

union
вернет только уникальные строки.
union all
все строки с повторениями
как выбрать данные из двух таблиц?
От: Аноним  
Дата: 04.09.08 11:20
Оценка:
Здавствуйте,

у меня есть 2 разные таблицы: tab1 и tab2. Они никак не связаны между собой, и в каждой есть поле email.

Мне нужно в одном запросе выбрать все емайлы из обеих таблиц (а перед этим — количество записей)
Нужен именно один запрос так как используется pagination для вывода результата.

Если я делаю
SELECT tab1.email, tab2.email FROM tab1, tab2;
выводится куча повторяющихся строк

SELECT DISTINCT tab1.email, tab2.email FROM tab1, tab2;
тоже не помогает.

Как быть?
Re: как выбрать данные из двух таблиц?
От: zhech  
Дата: 04.09.08 11:47
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здавствуйте,


А>у меня есть 2 разные таблицы: tab1 и tab2. Они никак не связаны между собой, и в каждой есть поле email.


А>Мне нужно в одном запросе выбрать все емайлы из обеих таблиц (а перед этим — количество записей)

А>Нужен именно один запрос так как используется pagination для вывода результата.

А>Если я делаю

А>SELECT tab1.email, tab2.email FROM tab1, tab2;
А>выводится куча повторяющихся строк

А>SELECT DISTINCT tab1.email, tab2.email FROM tab1, tab2;

А>тоже не помогает.

А>Как быть?


select sum(tab3.email_count), tab3.email from
(
select count(*) as email_count, tab1.email as email from tabl group by tab1.email
union
select count(*) as email_count, tab2.email as email from tab2 group by2tab1.email
) as tab3 group by tab3.email

скорее всего можно оптимизировать
Re: как выбрать данные из двух таблиц?
От: ironwit Украина  
Дата: 04.09.08 11:50
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Здавствуйте,


А>у меня есть 2 разные таблицы: tab1 и tab2. Они никак не связаны между собой, и в каждой есть поле email.


А>Мне нужно в одном запросе выбрать все емайлы из обеих таблиц (а перед этим — количество записей)

А>Нужен именно один запрос так как используется pagination для вывода результата.

select distinct * from (
select tab1.email FROM tab1
union all
select tab2.email FROM tab2)


ЗюЫю
не помню для union параметра который обьединяет только уникальные строки, если найдешь — тогда главный запрос можно выбросить
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Я не умею быть злым, и не хочу быть добрым.
Re: как выбрать данные из двух таблиц?
От: svanir Украина  
Дата: 04.09.08 12:14
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здавствуйте,


А>у меня есть 2 разные таблицы: tab1 и tab2. Они никак не связаны между собой, и в каждой есть поле email.


А>Мне нужно в одном запросе выбрать все емайлы из обеих таблиц (а перед этим — количество записей)

А>Нужен именно один запрос так как используется pagination для вывода результата.

А>Если я делаю

А>SELECT tab1.email, tab2.email FROM tab1, tab2;
А>выводится куча повторяющихся строк

А>SELECT DISTINCT tab1.email, tab2.email FROM tab1, tab2;

А>тоже не помогает.

А>Как быть?


если кол-во записей по каждому email, то думаю так:
SELECT email, count(*) as k1
from tab1
group by email
union all
SELECT email, count(*) as k2
from tab2
group by email
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.