2
我希望有人能夠幫助我一個查詢我堅持。MySQL查詢 - 再次加入麻煩...?
我有一個照片數據庫的多輸入搜索表單。一個文本框'searchWords'是搜索我的'photoSearch'表,另一個文本框'specificPeople'搜索'people'表,搜索特定的人。
例如,用戶可能在箱1搜索「多切斯特酒店倫敦」和「布拉德·皮特」,在對話框2.
這就是我想,但它只是帶回了「多切斯特酒店的結果倫敦」,這是無視我的人搜索:
SELECT photoSearch.photoID, Left(photoSearch.caption,25), photoSearch.allPeople, photoSearch.allKeywords
FROM photoSearch
LEFT JOIN (photoPeople INNER JOIN people ON photoPeople.peopleID = people.peopleID)
ON photoSearch.photoID = photoPeople.photoID AND people.people IN ('kate moss','jamie hince')
WHERE MATCH (caption, allPeople, allKeywords) AGAINST ('+dorchester +hotel' IN BOOLEAN MODE)
AND
photoSearch.dateCreated BETWEEN '2011-07-21' AND '2011-10-23'
ORDER BY photoSearch.dateCreated
如果我參加了JOIN走,全文搜索是完美的。我的表架構是這樣的一個小:
**photoSearch**
photoID INT/AUTO/INDEX
caption VARCHAR(2500)/FULLTEXT
allPeople VARCHAR(300)/FULLTEXT
allKeywords VARCHAR(300)/FULLTEXT
dateCreated DATETIME/INDEX
**photoPeople**
photoID INT/INDEX
peopleID INT/INDEX
**people**
peopleID INT/INDEX
people VARCHAR(100)/INDEX
這是可以解決的還是我完全做錯事?如果是這樣,可能會有人告訴我什麼,我的意思是做:)
什麼傳說,謝謝 - 3分鐘的答案是相當不錯:) – TheCarver
其實,我有另一個問題 - 對不起。我試圖在一張照片中搜索一張有兩個名字'Brad Pit','Angelina Jolie'的照片,但我認爲我的IN子句是錯誤的,因爲它會返回所有Brad Pitt照片和所有Angelina Jolie照片,所以它是表現得像一個「或」條款。我需要它來搜索這兩個名稱匹配,是你可以建議的,還是我會創建一個新的問題? – TheCarver