|
|
|
Помогите найти лучшее решение
|
|||
|---|---|---|---|
|
#18+
Мужики такой вроде просто вопрос, который вызвал у меня затык может переработал Есть две таблицы users, foods foods имеет поля id, user_id, tovar, kachestvo tovar - бывает любым kachestvo - три параметра low, medium, high Как собрать правильно по каждому tovar пятерку лидеров из числа юзеров, где на каждый товар будет top-5 по low, top-5 по medium, top-5 по high ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 08:12 |
|
||
|
Помогите найти лучшее решение
|
|||
|---|---|---|---|
|
#18+
Лидеров имею ввиду по количеству обладаний каждым юзеров tovarov нужного качества пример top-5 low ivanov - 36 markov - 15 .... top-5 medium markov - 19 sergeev -16 .... top-5 high orlov - 21 ivanov - 15 ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 08:15 |
|
||
|
Помогите найти лучшее решение
|
|||
|---|---|---|---|
|
#18+
DonDiego, Напиши три запроса т.е. для каждого параметра (low, medium, high) и соедини эти запросы через UNION ALL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 10:50 |
|
||
|
Помогите найти лучшее решение
|
|||
|---|---|---|---|
|
#18+
SELECT * FROM foods WHERE tovar = '12' AND kachestvo = 'low' union all SELECT * FROM foods WHERE tovar = '12' AND kachestvo = 'medium' union all SELECT * FROM foods WHERE tovar = '12' AND kachestvo = 'high' а дальше что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 11:31 |
|
||
|
Помогите найти лучшее решение
|
|||
|---|---|---|---|
|
#18+
DonDiego, 19806931 Где top 5 в каждом запросе? WHERE tovar = '12' -- это не нужно, просто группировка по товару в запросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 11:34 |
|
||
|
Помогите найти лучшее решение
|
|||
|---|---|---|---|
|
#18+
DonDiegoSELECT * FROM foods WHERE tovar = '12' AND kachestvo = 'low' union all SELECT * FROM foods WHERE tovar = '12' AND kachestvo = 'medium' union all SELECT * FROM foods WHERE tovar = '12' AND kachestvo = 'high' а дальше что? примерно так: Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 11:40 |
|
||
|
Помогите найти лучшее решение
|
|||
|---|---|---|---|
|
#18+
trewDonDiegoSELECT * FROM foods WHERE tovar = '12' AND kachestvo = 'low' union all SELECT * FROM foods WHERE tovar = '12' AND kachestvo = 'medium' union all SELECT * FROM foods WHERE tovar = '12' AND kachestvo = 'high' а дальше что? примерно так: Код: sql 1. 2. 3. 4. 5. Я чего-то не догоняю )) мне же как раз надо топ 5 найти то есть у кого больше всего вхождений и еще и посчитать эти вхождения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 11:54 |
|
||
|
Помогите найти лучшее решение
|
|||
|---|---|---|---|
|
#18+
сейчас с Вашей помощью допер до такого SELECT user_id FROM `foods` WHERE tovar = '12' AND kachestvo = 'low' GROUP BY user_id LIMIT 5 выводит список топ 5 а как чтобы он сразу посчитал сколько каждый ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 11:55 |
|
||
|
Помогите найти лучшее решение
|
|||
|---|---|---|---|
|
#18+
DonDiego, Хотя нет это не топ 5 выходит просто первые 5 записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 11:56 |
|
||
|
Помогите найти лучшее решение
|
|||
|---|---|---|---|
|
#18+
DonDiego, возможно так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 12:01 |
|
||
|
Помогите найти лучшее решение
|
|||
|---|---|---|---|
|
#18+
trew, в MySQL нет конструкции top 5. Есть LIMIT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 12:03 |
|
||
|
Помогите найти лучшее решение
|
|||
|---|---|---|---|
|
#18+
trew, Спасибо попробую сейчас, напишу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 12:24 |
|
||
|
Помогите найти лучшее решение
|
|||
|---|---|---|---|
|
#18+
miksofttrew, в MySQL нет конструкции top 5. Есть LIMIT. вот и я не пойму про top 5, думаю может не знаю я такого, читать стал )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 12:25 |
|
||
|
Помогите найти лучшее решение
|
|||
|---|---|---|---|
|
#18+
DonDiegomiksofttrew, в MySQL нет конструкции top 5. Есть LIMIT. вот и я не пойму про top 5, думаю может не знаю я такого, читать стал )) Код: sql 1. 2. 3. 4. 5. получим масло вася лоу 12 масло петя ло2 16 ..... тоже для масло медиум, и для масла хай а также для хлеба, гвоздей, конструкторов-лего и книжек-по-базам-даным :) и вот теперь задача - для групы масло-лоу взять первые пять строк для группы масло-медиум 5 записей, для хай 5 и так для каждой групы товар-качество только пять записей. в шапке форума есть тема - гурпировка, нумерация , нумерация в группе дальше сделать как там написано групой у тебя выступает не одно поле а два - товар и качество, остальное всё как в тех примерах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 13:55 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=89&tid=1831291]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 329ms |

| 0 / 0 |
