2014-12-06 5 views
0

У меня есть 2 таблицы accounts и confirm_email. confirm_email имеет столбец под названием code и accounts имеет столбец под названием email, и они оба имеют столбец с именем account_name Я пытаюсь выбрать code из confirm_email и email от accounts, где величина account_name одинакова в обоих и равна а конкретное значение. Так basicaly я хочу, чтобы объединить эти два comands:выбор значений из двух таблиц mysql

SELECT email FROM accounts WHERE account_name = 'value'; 
SELECT code FROM confirm_email WHERE account_name = 'value'; 

Я попытался это:

SELECT code, email FROM confirm_email, accounts WHERE accounts.account_name = 'value'; 

но вернулись все коды в code колонке с email corrosponding к правильному code repeaded для каждого code значения , Любые идеи, как правильно объединить два запроса в один? Спасибо за прочтение.

ответ

3
SELECT c.code, a.email 
FROM confirm_email c join accounts a on a.account_name = c.account_name 
WHERE a.account_name = 'value'; 

При объединении двух таблиц необходимо установить условие соединения.

старый стиль (без ПРИСОЕДИНЯЙСЯ ключевое слово):

SELECT c.code, a.email 
FROM confirm_email c, accounts a 
WHERE a.account_name = c.account_name 
    and a.account_name = 'value'; 
+0

Yep, который работает. Огромное спасибо – user2014429

1

Попробуйте это внутреннее соединение

SELECT confirm_email.code, accounts.email 
FROM confirm_email inner join accounts 
ON confirm_email.account_name = accounts.account_name 
WHERE accounts.account_name = 'value'; 
Смежные вопросы