2013-03-01 26 views
0

你好,我想知道是否有可能做一個查詢,其中兩個不同的表將被檢查,結果是行數將返回,甚至是真/假。通過mysql查詢中的2個表num_rows?

的原因是,我有一個函數:

function exists($email){ 
    global $db; 
    $query = $db->query("SELECT Email FROM table1, table2 WHERE Email= '$email' "); 
    $check = $query->num_rows; 
    return ($check == 1) ? true : false; 
} 

我知道,如果表具有相同的結構,這僅適用。在我的情況下,它不是那樣的。

這兩個表都只有字段「電子郵件」的共同點,但沒有別的。

table1的是這樣的:

field_1 | field_2 | field_3 | field_4 | field_5 | field_6(電子郵件) | field_7 | field_8 | field_9

table2就像:

field_1 | field_2 | field_3 | field_4 | .... | field_17(電子郵件) | field_18 | field_19 | field_20

所以我想知道這是否可能?我看着通過JOIN,但沒有得到它該怎麼做?

謝謝。

+0

mysql小提琴,用你當前的表格建立一個設置,所以我們很清楚你的結構是什麼。 – Tschallacka 2013-03-01 12:54:15

回答

2

如下嘗試:

SELECT SUM(cnt) as total_count 
(
SELECT COUNT(*) as cnt FROM table1 WHERE Email= '$email' 
UNION 
SELECT COUNT(*) as cnt FROM table1 WHERE Email= '$email' 
) 
0

您可以使用工會,像SELECT email FROM table1 where Email = '$email' union SELECT email FROM table2 where Email = '$email'

您必須記住,兩個查詢的選定列數必須相同。

另外,當你實際上不需要它們時獲取行是浪費資源 - 直接從數據庫中獲得匹配行數。

+0

你好,這是什麼意思,選定的列數必須相同?我更新了我的問題。謝謝。 – bonny 2013-03-01 13:07:56

+0

這意味着''select''關鍵字後的字段數必須相同,例如。 ''從table2的table1聯合選擇欄中選擇foo將起作用,但是'從table2的table1聯合選擇欄中選擇foo,baz不會。 – leafnode 2013-03-01 13:09:49