2012-03-16 54 views
0

我從名爲people的數據庫中提取用戶標識並給它一個$ userid變量。相同的用戶標識符有時與另一個名爲info的表相關聯。有時會有一個匹配的用戶標識,有時該用戶標識不與信息表關聯。當我執行以下查詢時,當people表中的用戶標識在info表中沒有匹配的用戶標識時,該功能將被跳過。有沒有找到找不到匹配結果的方法?當sql查詢找不到匹配時返回結果

$club_query = $wpdb->get_results($wpdb->prepare("SELECT clubs FROM info WHERE userid = '$userid' LIMIT 1")); 

如果俱樂部在結果中,那麼執行一個功能。

任何幫助表示讚賞。

回答

1

有幾個骯髒的黑客我用這種東西。一種是使用MIN(clubs)代替clubs,因爲如果沒有行,然後MIN(...)回報NULL

SELECT MIN(clubs) clubs FROM info WHERE userid = ... 

另一種是用一個RIGHT JOIN (SELECT 1) t

SELECT info.clubs FROM info RIGHT JOIN (SELECT 1) t ON info.userid = ... 

兩種方法的工作,但也存在一些缺點/侷限性。

編輯補充:剛剛發生,我現在另一種方法是使用在該領域列表的子查詢:

SELECT (SELECT clubs FROM info WHERE userid = ...) clubs; 

也轉換一個空結果集到NULL。這也有一些限制。

+0

採取的一點。謝謝! – 2012-03-16 23:51:03

+0

感謝您的回覆。提到null讓我懷疑查詢是否返回null的結果,而且確實如此。所以現在一切都很好。非常感謝。 – 2012-03-17 00:24:13

相關問題