2012-04-02 7 views
1
$q="SELECT DISTINCT 
      t1.un_email,t6.email 
        FROM 
        sisters_7sisters.tbl_unsubscribe as t1, 
        sisters_7sisters.tbl_uptade_list as t6"; 

Я пишу запрос, как и выше мне нужно, чтобы получить все уникальные письма из таблиц Но это дает мне пару некоторых результатов, которые не являются уникальными ..Я пытался получите электронное письмо только один раз из этих таблиц.SQL QUERY ---- Получить все сообщения электронной почты

+2

@TheJumpingFrog: Читали ли вы запрос. Он использует 'DISTINCT'? – Arion

+1

Вы забыли кое-где? Вы должны присоединиться к двум таблицам логически – Tobi

+0

@Arion Ах, да, заметил это после того, как я прокомментировал. Обычно я использую все имена столбцов в одной строке, поэтому сначала не заметил этого. – hjpotter92

ответ

0

Было бы лучше использовать присоединиться присоединиться к этим две таблицы и выберите отчетливое электронную почту

Явное вы используете, только применительно к каждой колонке результата и не оба одновременно.

0

Это вы не присоединяете к ним, и у вас нет статьи where. Тогда вы могли бы быть хорошо с этим решением (нет дубликатов писем):

SELECT 
    t1.un_email AS email 
FROM 
    sisters_7sisters.tbl_unsubscribe as t1 
UNION 
SELECT 
    t6.email 
FROM 
    sisters_7sisters.tbl_uptade_list as t6 

Или вы можете использовать UNION ALL. Это будет возвращать дубликаты:

SELECT 
    t1.un_email AS email 
FROM 
    sisters_7sisters.tbl_unsubscribe as t1 
UNION 
SELECT 
    t6.email 
FROM 
    sisters_7sisters.tbl_uptade_list as t6 
+0

или, возможно, UNION ALL вместо UNION – Tobi

+0

Я просто думал. Если ему нужны все уникальные электронные письма. Затем снова будет дублироваться «UNION ALL». Я обновлю ответ, чтобы иметь «UNION ALL». Таким образом, OP может выбрать для себя – Arion

+0

Вы правы! Я думаю, у ОП есть решение, и он должен проверить его ... – Tobi

0

Ithink Вы забыли Присоединяйтесь ocndition

при использовании

select * from table1,table2 

это создаст cartisian product

если table1 в

1 

2 

3 

и таблица2 имеет

как их данных.

декартово произведение будет

1 4 

1 5 

1 6 

2 4 

2 5 

2 6 

3 4 

3 5 

3 6 

удалить это unnecesary поля вы должны Join

Смежные вопросы