У меня есть веб-сайт с фотографиями знаменитостей, 100 000 фотографий и их рост.Пользователь выполнил поиск "Церемония награждения Оскаром", и я в настоящее время перебираю результаты для отображения соответствующих фотографий.
Теперь я хотел бы предложить столбец уточнения поиска, который расположен рядом с результатами, чтопокажет конкретные имена людей, которые были сфотографированы на этом конкретном мероприятии (на основе идентификаторов фотографий из результатов), показывая количество фотографий рядом с каждым именем и отображая имена в порядке наибольшего количества.
Примерно так:
Вы искали:"Церемония вручения премии Оскар" (12 489)
Конкретные люди:
Брэд Питт (1726)
Анджелина Джоли (1302)
Эдвард Нортон (929) ...
Это моя схема базы данных:
photoSearch (tbl)
photoID INT(11) Index Auto-Increment
headline VarChar(1000) FullText
caption VarChar(2500) FullText
dateCreated DateTime Index
photoPeople (tbl)
photoID INT(11)
peopleID INT(11)
people (tbl)
peopleID INT(11) Primary Auto-Increment
people VarChar(255) Index
Так что, в основном, у меня есть результирующий набор идентификаторов photoID из результатов последнего поиска пользователей.Используя этот набор результатов, мне нужно запросить таблицы 'photoPeople' и 'people', чтобы получить список людей, связанных с этими photoID, мне нужно показать количество и упорядочить их по количеству.
Какмогу ли я пойти на это?Это можно сделать одним запросом?Придется ли мне записывать результаты в таблицу, чтобы можно было их посчитать и упорядочить?
Это то, что я сделал до сих пор, но перечисляет только имена людей:
SELECT * FROM people
INNER JOIN photopeople ON photoPeople.peopleID = people.PeopleID
WHERE photoID IN ('87345','8900','83458','63746')
IЯ не ищу точный код, хотя это было бы очень полезно, я просто ищу совет о том, как выполнить это правильно с учетом производительности.Я думаю, что мой мозг способен показать соответствующих людей, но не в любом порядке и, конечно, без подсчета!
Любая помощь, с благодарностью полученная ...
PS Когда я получаю рабочее решение вместеЯ буду применять это к моей таблице событий и ключевых слов тоже.Это означает, что если кто-то искал «Брэда Питта», событие «Церемония вручения премии Оскара» появится в столбце «Уточненный поиск» с 1726 рядом с событием.