Здравствуйте, 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
Здравствуйте, 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;
тоже не помогает.
Здравствуйте, Аноним, Вы писали:
А>Здавствуйте,
А>у меня есть 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
Здравствуйте, <Аноним>, Вы писали:
А>Здавствуйте,
А>у меня есть 2 разные таблицы: tab1 и tab2. Они никак не связаны между собой, и в каждой есть поле email.
А>Мне нужно в одном запросе выбрать все емайлы из обеих таблиц (а перед этим — количество записей) А>Нужен именно один запрос так как используется pagination для вывода результата.
select distinct * from (
select tab1.email FROM tab1
union all
select tab2.email FROM tab2)
ЗюЫю
не помню для union параметра который обьединяет только уникальные строки, если найдешь — тогда главный запрос можно выбросить
Здравствуйте, Аноним, Вы писали:
А>Здавствуйте,
А>у меня есть 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