|
|
|
Как получить записи по идентификаторам и отсортировать ?
|
|||
|---|---|---|---|
|
#18+
Есть несколько таблиц: Article (id, title) Article_Tag (article_id, tag_id) Tag (tag_id, name) К примеру в таблице Article есть записи, которые содержат теги. Связи прописаны в Article_Tag. Например запись "Новость 1" содержит теги: Новости, Природа, Горячее. В таблице Article_Tag будет следующее: 1 (id новости) 1 (id тега) 1 (id новости) 2 (id тега) 1 (id новости) 3 (id тега) и тп. Подскажите пожалуйста как можно написать запрос, который бы достал все записи из Article, которые содержат максимальное кол-во одинаковых тегов? Тоесть если у нас есть "Новость 1" с тегами "Новости, Природа, Горячее" то похожие на нее будут записи, которые включают все эти теги. Сортировка по кол-во тегов: Похожие записи на "Новость 1": "Новость 2" - "Новости, Природа, Горячее" "Новость 3" - "Новости, Природа" "Новость 4" - "Новости, Природа" "Новость 5" - "Новости" "Новость 6" - "Горячее" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 21:03:34 |
|
||
|
Как получить записи по идентификаторам и отсортировать ?
|
|||
|---|---|---|---|
|
#18+
Несложным запросом, связав две копии таблицы Article_Tag, подсчитайте количество совпадающих тегов для каждой пары статей. Посчитайте максимальное количество совпадающих тегов. Из второй копии того же двутабличного запроса выберите только те пары, для которых количество совпадений равно максимальному. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 21:44:33 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=157&tid=1834015]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
24ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 330ms |

| 0 / 0 |
