Я надеюсь, что кто-нибудь сможет помочь мне с вопросом, на котором я застрял.
У меня есть многократная форма поиска для базы данных фотографий. Одно текстовое поле «searchWords» предназначено для поиска в моей таблице «photoSearch», а другое текстовое поле «specificPeople» выполняет поиск в таблице «people» для поиска конкретных людей.
Например, пользователь может искать «Dorchester Hotel London» в окне 1 и «Брэд Питт» в окне 2.
Это то, что я пытаюсь, но это только возвращает результаты для "Dorchester Hotel London", это игнорирует мой поиск людей:
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
Это поправимо или я все делаю не так? Если так, может кто-нибудь показать мне, что я должен делать:)