2012-03-08 6 views
0

У меня проблема с моим заказом результатов поиска.Mysql - Закажите результаты по количеству Идентификаторов в другой таблице

У меня есть две таблицы

Таблица фотографии (первая таблица), где у меня есть информация о фото и каждая фотография имеет идентификатор.

Когда кто-то нажимает на результат (фото), сценарий сохраняет информацию о нем во вторую таблицу. Table (вторая таблица) выглядит следующим образом

______________________ 
|ID of photo| keyword| 

сортировать результаты по количеству идентификаторов фото во второй таблице

так order by (something) + (something) + (count id´s of photo for phrase by user (keyword))

Например:

В таблице являются:

|id|keyword| 
|5 |car | 
|5 |car | 
|6 |car | 
|6 |car | 
|2 |car | 
|5 |car | 

Поисковый запрос:

SELECT * FROM bx_photos_main WHERE (Title LIKE '%keyword%') OR (Desc LIKE '%keyword%') OR (Categories LIKE '%keyword%')order by (order) DESC LIMIT 0, 10;

Когда кто-нибудь попробует найти «автомобиль» Фото 5 будет первым, 6 второй и третий будет фото с идентификатором 2 ... Может кто-нибудь мне помочь?

Структура bx_photos_main
ID  -  int(10)  -  UNSIGNED  -  AUTO_INCREMENT

_bx_hledej (seccond стол)
id     - int(11)
keyword - varchar(20)

+1

Это домашнее задание? –

+1

Не могли бы вы разместить запрос (ы), который вы пробовали до сих пор? –

ответ

0

Для подсчета (и порядок) по количеству фотографий на ключевое слово, можно использовать запрос, как это:

SELECT 
    photos.id, 
    photos.Title, 
    photos.Desc, 
    photos.Categories 
FROM bx_photos_main photos 
LEFT OUTER JOIN _bx_hledej keywords 
ON keywords.id = photos.id 
WHERE (Title LIKE '%keyword%') OR (Desc LIKE '%keyword%') OR (Categories LIKE '%keyword%') 
GROUP BY keywords.keyword 
ORDER BY COUNT(*) DESC 
+0

Большое спасибо за быстрый ответ! Он выглядит хорошо, но мне нужна часть в порядке ORDER BY (это). Потому что посетители могут менять порядок с помощью кнопки, а скрипт изменяет только эту часть. – user1257124

+0

Я не понимаю, чего вы хотите. См. Обновленный запрос, основанный на фактической структуре db. – bfavaretto

Смежные вопросы