2011-11-25 78 views
-2
SELECT * FROM 
companies as C 
LEFT JOIN usersSearchCache as UC ON C.id = UC.objectId 
WHERE UC.userId = ? AND C.keywords LIKE ? 

所以基本上我有一個表:usersSearchCache,有一個OBJECTID中,OBJECTID 鏈接到公司表的ID,我需要搜索所在公司的關鍵字匹配在用戶的緩存中。MySQL的加入其他表搜索

上面的查詢不起作用,但我不明白爲什麼。

+0

您可以發佈錯誤以及您用於執行此命令的一些代碼嗎?以及您提供的參數以及您的預期結果? – Nonym

+0

您是否收到錯誤或無結果?你可以添加一個完整的查詢嗎? – ben

+0

即時獲取沒有錯誤或任何結果,但我確定參數是正確的。 –

回答

0

我們在用戶表中獲取用戶,所有這些用戶都可以訪問對象的頁面,當他們訪問這些頁面時,會在表userSearchCache中創建一條新記錄。

select * FROM userSearchCache UC 
where UC.userId = ? 

回報像

userId,objectId 
1,123 
1,345 

現在我得到的是一個搜索欄,在用戶插入他們要搜索的對象的名稱,所以當前的查詢是:

JOIN companies C ON UC.object_id=C.id 

userId,objectId,keywords 
1,123,"yoga,savate,pilates" 
1,345,"tennis,biking,soccer" 

找到 「騎自行車」,我會用LIKE '%BIKING%'

select * 
FROM userSearchCache UC 
JOIN companies C ON UC.object_id=C.id 
where UC.userId = ? AND c.keywords LIKE '%'+?+'%' 

您的關鍵字參數是否已經包含通配符'%'