Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите, пожалуйста, понять как должен выглядеть запрос
|
|||
|---|---|---|---|
|
#18+
Добрый день. Мне дали задание по MySQL с пониманием того, что я в нем ничего не смыслю, но для меня очень важно его выполнить. Есть две связанные таблицы и нужно сделать запрос, я читал, смотрел примеры, но проблема в том, что не понимаю как вообще возможно сделать такой запрос. Если в одной таблице есть поле ManId и поле ManName, а в другой - ProdactId и ProdactName и указано что поле ManId описывает какой человек какой товар покупал. В результате, нужно сделать запрос, который бы вывел список ManName отсортированный по количеству купленных товаров (вверху тот, кто больше всего купил и внизу тот, кто меньше всего). И я не понимаю, если поле ManId сохраняет данные про то КАКОЙ товар купил человек, то так сделать так, что бы данное поле имело количественное значение, по которой можно будет сделать сортировку. Возможно, я задаю глупый вопрос, но я не понимаю логику этого задания, помогите мне, пожалуйста, разобраться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2017, 13:07 |
|
||
|
Помогите, пожалуйста, понять как должен выглядеть запрос
|
|||
|---|---|---|---|
|
#18+
izov_OLE, очень похоже, что нужна третья табличка... ManID, ProductID, BuyCount ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2017, 13:28 |
|
||
|
Помогите, пожалуйста, понять как должен выглядеть запрос
|
|||
|---|---|---|---|
|
#18+
Прохожий456, и эту третью табличку нужно как то получить на основе тех, что уже есть? Тогда вопрос, как посчитать количество куплены товаров, которые хранятся в поле ManId? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2017, 13:37 |
|
||
|
Помогите, пожалуйста, понять как должен выглядеть запрос
|
|||
|---|---|---|---|
|
#18+
Логика такая: 1) Связываем таблицы по соответствующему полю, и получаем как бы в одной таблице данные и по человеку, и по его товару. При этом к одной записи человека привяжется несколько записей его товара (соответственно будет сделано необходимое количество копий записи про человека). Код: sql 1. 2. 2) Группируем записи по человеку. Т.е. "сплошной" список будет "поделен" на группы, в каждой только те данные, у которых один и тот же человек (но разные товары). Код: sql 1. 3) Считаем количество записей в каждой группе. Получаем для человека, чья группа, поле с количеством товаров у него. Код: sql 1. 4) Сортируем по этому полю, причём по убыванию. Код: sql 1. 5) Выводим нужные поля. Код: sql 1. А теперь всё вместе: Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2017, 13:39 |
|
||
|
Помогите, пожалуйста, понять как должен выглядеть запрос
|
|||
|---|---|---|---|
|
#18+
Прохожий456очень похоже, что нужна третья табличка... ManID, ProductID, BuyCountУ него чётко указано: izov_OLEв другой - ProdactId и ProdactName и указано что поле ManId описывает какой человек какой товар покупалт.е. поле ManId находится в таблице ProdactName. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2017, 13:43 |
|
||
|
Помогите, пожалуйста, понять как должен выглядеть запрос
|
|||
|---|---|---|---|
|
#18+
Akina, спасибо Вам огромное, буду разбираться! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2017, 13:46 |
|
||
|
Помогите, пожалуйста, понять как должен выглядеть запрос
|
|||
|---|---|---|---|
|
#18+
Akina, izov_OLEЕсли в одной таблице есть поле ManId и поле ManName, а в другой - ProdactId и ProdactName. Имен таблиц нет, написано, что это поля... Имеем никакую постановку задачи, частичную или ошибочную... я исхожу из того, что все таки должна быть третья таблица покупок, с количествами... А две описанные таблицы - это просто справочники ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2017, 14:16 |
|
||
|
Помогите, пожалуйста, понять как должен выглядеть запрос
|
|||
|---|---|---|---|
|
#18+
AkinaУ него чётко указано: поле ManId находится в таблице ProdactName. Ничего там четко не указано. И таблица с именем ProdactName - это ваша фантазия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2017, 14:22 |
|
||
|
Помогите, пожалуйста, понять как должен выглядеть запрос
|
|||
|---|---|---|---|
|
#18+
Если предположить, что структура БД имеет вид Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. В разрезе клиент Код: sql 1. 2. 3. 4. 5. 6. 7. 8. В разрезе клиент+товар Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2017, 14:32 |
|
||
|
Помогите, пожалуйста, понять как должен выглядеть запрос
|
|||
|---|---|---|---|
|
#18+
Как работает... ManTbl ManID ManName1 Сидоров2 Петров3 Иванов ProductTbl ProductID ProductName1 Ручка2 Карандаш3 Бумага А44 Картон А4 BuyTbl ManID ProductID BuyCount1 1 21 3 31 4 12 2 32 1 43 4 10 Шаг 1 : группировка и суммирование, вложенный запрос Код: sql 1. 2. 3. получим таблицу ManID BuySums1 2+3+1=62 3+4=73 10 данную таблицу обзываем BuyRes Код: sql 1. 2. 3. 4. 5. Шаг 2 : Цепляем к нашей BuyRes таблицу-справочник ManTbl Код: sql 1. получим табличку BuyRes.ManID BuyRes.BuySums ManTbl.ManID ManTbl.ManName161Сидоров272Петров3103Иванов Шаг 3 : Оставим в табличке только необходимые поля Код: sql 1. ManTbl.ManName BuyRes.BuySumsСидоров 6Петров 7Иванов 10 Шаг4 : отсортируем по колонке суммы в обратном порядке Код: sql 1. ManTbl.ManName BuyRes.BuySumsИванов 10Петров 7Сидоров 6 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2017, 15:12 |
|
||
|
Помогите, пожалуйста, понять как должен выглядеть запрос
|
|||
|---|---|---|---|
|
#18+
Прохожий456, скажите, пожалуйста, а если упростить и предположить, что 1 человек покупал только 1 товар, то тогда поле BuyCount будет не обязательным, так как все значения буду равны 1. Можно как то решить это задание, если считать его верным и предположить, что третьей таблицы быть не должно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2017, 19:28 |
|
||
|
Помогите, пожалуйста, понять как должен выглядеть запрос
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, действительно немного не дописал, поля ManId и ManName находятся в таблице Man, а ProdactId и ProdactName в таблице Prodact, но никакой третьей таблицы в поставленном задании нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2017, 19:36 |
|
||
|
Помогите, пожалуйста, понять как должен выглядеть запрос
|
|||
|---|---|---|---|
|
#18+
izov_OLEПрошу прощения, действительно немного не дописал, поля ManId и ManName находятся в таблице Man, а ProdactId и ProdactName в таблице Prodact, но никакой третьей таблицы в поставленном задании нет. Решение данной задачи предложил комрад Akina, надо только таблицы переименовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2017, 23:19 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=77&tid=1830816]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 142ms |

| 0 / 0 |
