2014-12-06 96 views
0

我有2個表accountsconfirm_emailconfirm_email有一個叫做codeaccounts列有列名爲email,他們都有一列稱爲account_name我想選擇confirm_emailcodeemailaccounts其中account_name的價值是相同和等於具體的價值。所以basicaly我想這兩個命令對應的結合:從兩個表中選擇值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到repeaded每個code值正確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

沒錯的作品。非常感謝 – user2014429 2014-12-06 22:33:06

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';