2015-01-13 41 views
0

所以我需要從sql表中拉兩列,但是由於DISTINCT()我需要使用一個作爲別名。在這種情況下,我無法在文檔中找到太多內容,所以我轉過了這裏。當使用別名時拉多列

這工作(沒有第二列):

SELECT distinct(message_recips.userid) as userid 
FROM message_recips WHERE messageid = ? 

儘管如此,這並不:

SELECT distinct(message_recips.userid) as userid, users.email 
FROM message_recips 
INNER JOIN users ON users.email = message_recips.userid 
WHERE messageid = ? 

爲什麼加入第二列(users.email)導致此不工作?我只是試圖獲取郵件收件人的用戶的電子郵件地址。第一個查詢完美地獲取了郵件收件人,並且我相當確信這是獲取電子郵件地址的正確格式。

查詢返回沒有結果,但沒有錯誤。

+0

有什麼問題嗎? – philipxy

+0

您不僅僅添加了您加入第二個表的列。描述新的代碼*如何不起作用*?你查詢運行?你有什麼錯誤嗎? –

+0

閱讀並執行[this](https://stackoverflow.com/help/mcve)。 – philipxy

回答

1

第二個查詢是要求所有可能的行中的用戶標識和電子郵件,這些行可以從每個表的行中製作,其中users.email = message_recips.userid。

由於您得不到任何行,因此您沒有任何等於message_recips用戶標識的用戶電子郵件。

(不奇怪)

你可能想:

SELECT distinct(message_recips.userid) as userid, users.email 
FROM message_recips 
INNER JOIN users ON users.userid = message_recips.userid 
WHERE messageid = ? 
+0

哦,廢話你是對的。我知道如何做到這一點。潔聖。感謝您與我合作。 – ambe5960

相關問題