2015-04-30 50 views
0

我有3個MySQL表:MySQL的搜索電子郵件和域名有多個表

unsubscribers =>(id, email)

bounces =>(id, email, bounce_reason)

blacklists =>(id, domain)

假設例如我們必須搜索電子郵件ID:[email protected]和域名:someone.com(即電子郵件ID)

我想寫這樣的查詢,將搜索Email ID現有unsubscribersbounces,或存在於blacklists

所以它會像domain,如果任一電子郵件ID或域存在這些表中,我應該得到的結果爲1或0。如果這是不可能的,至少我應該得到的數據

在此先感謝您的幫助

回答

0

我找到了解決的辦法。下面的查詢,所有這一切

SELECT (SELECT count(`email`) FROM `unsubscribers` WHERE `email` = '[email protected]') AS `unsubscribers`, 
(SELECT count(`email`) FROM `bounces` WHERE `email` = '[email protected]') AS `bounces`, 
(SELECT count(`name`) FROM `blacklists` WHERE `name` = 'gmail.com') AS `blacklists` 

,並返回

+---------------+---------+------------+ 
| unsubscribers | bounces | blacklists | 
+---------------+---------+------------+ 
|    1 |  0 |   0 | 
+---------------+---------+------------+ 

啊,這是一個noob問題:'(

+1

我相信還是這將是3個的查詢執行的所有表執行因爲沒有可用的參考文件,所以不確定JOIN是否會在這裏提供幫助 – rsakhale

+0

任何人都可以幫助將此子查詢轉換爲加入? – pmenezes