Заблокирован
|
|
1 | |
Как организовать такую хитрую выборку?23.02.2020, 16:34. Показов 397. Ответов 13
Вводная: в игре есть так называемый Альянс (группа союзников), каждый член Альянса позволяет брать в бой 5 единиц техники: при атаке самую сильную по параметру атаки, при отражении нападения самую сильную по защите.
Структура таблицы техники (примерная) id_user id_unit attack defense amount 1 1 5 2 1 1 2 1 7 8 1 3 2 5 5 1 4 4 4 9 1 5 7 2 6 Количество Альянса, например, 2 и он позволяет взять 10 единиц техники, поэтому нужно выполнить запрос, который выведет Задействовано для Атаки: id_unit amount 5 6 1 1 4 3 Задействовано для Защиты: id_unit amount 2 8 3 2
0
|
23.02.2020, 16:34 | |
Ответы с готовыми решениями:
13
Как лучше организовать такую структуру базы данных? Как сделать такую выборку? Можно ли сделать такую выборку одним запросом или как их обьеденить? Как организовать такую функцию |
23 / 30 / 4
Регистрация: 08.12.2019
Сообщений: 221
|
|
24.02.2020, 18:49 | 2 |
мне кажется в вашем вопросе легко сможет помочь так называемое Представление (оно же - вид) появившихся в MySQL с версии 5.0.
( VIEW ) Добавлено через 8 минут я тоже не понял от куда вы это взяли. (2 верхних если по логике вроде понял) там не? но все равно становиться не понятно с ну это же не выборка а данные получаемые в процессе расчета ?? и вопрос как выбрать - становится не актуальным.. и ошибочным ???? Добавлено через 6 минут или я ничего не понял в любом случае не понимая как формируется мне непонятное - не смогу подсказать
0
|
Заблокирован
|
|
24.02.2020, 21:42 [ТС] | 3 |
anamnado,
всего имеется id_user id_unit attack defense amount 1 1 5 2 1 1 2 1 7 8 1 3 2 5 5 1 4 4 4 9 1 5 7 2 6 Для Атаки самая сильная id_unit = 5, её берём всю, так как её 6 из 10, осталось взять 4, следующая самая сильная id_unit = 1, её берём всю, так как её 1 из 4, осталось взять 3, следующая самая сильная id_unit = 4, её берём только 3, потому что её 9, но нам больше нельзя. Нужно вывести Задействовано для Атаки: id_unit amount 5 6 1 1 4 3
0
|
23 / 30 / 4
Регистрация: 08.12.2019
Сообщений: 221
|
|
24.02.2020, 21:56 | 4 |
тут дело в том что у вас структура - того....
это и усложняет вам сильно жизнь пишу в формате сsv id_user # data 1 # {1:5: 2:1} {2:1:7:8} {3:2:5:5} {4:4:4:9} {5:7: 2: 6} 2 # {4:5: 6:7} {3:6:7:3} {1:6:2:1} {5:4:7:3} {6:1: 2: 4} data - при выборке по юзеру вы превратите в многомерный массив а там манипулируйте, как хотите. (это примерный формат - для понимания ) вот так полегче должно быть делать расчет , раз эдак в 10. вашу реализацию когда в id идет повтор забудьте как страшный сон и не вспоминайте.
0
|
Заблокирован
|
|
24.02.2020, 22:01 [ТС] | 5 |
anamnado, а чем структура не устраивает
СТОЛБЦЫ: id_user, id_unit, attack, defense, amount ЗНАЧЕНИЯ: (1, 1, 5, 2, 1), (1, 2, 1, 7, 8), (1, 3, 2, 5, 5), (1, 4, 4, 4, 9), (1, 5, 7, 2, 6)
0
|
23 / 30 / 4
Регистрация: 08.12.2019
Сообщений: 221
|
|
24.02.2020, 22:16 | 6 |
я указал вам на ошибку которая вам портит жизнь...
и это выделено красным. (1, 1, 5, 2, 1) (1, 2, 1, 7, 8) (1, 3, 2, 5, 5) (1, 4, 4, 4, 9) (1, 5, 7, 2, 6) избавитесь от нее избавитесь от проблемы!! Не то что чтобы ошибка НО ну ее подальше такое .... [необходима иная структура хранения] И ВСЕ. нет проблем. [ТОЧНО] Добавлено через 13 минут может быть иначе когда есть больгая таблица а id_user, это внешний ключ вот так таблица user id имя 1 вася 2 гена таблица N2 id_unit attack defense amount id_user 1 5 2 1 1 2 1 7 8 1 3 2 5 5 1 4 4 4 9 1 5 7 2 6 2 6 5 2 1 2 7 1 7 8 2 8 2 5 5 2 9 4 4 9 2 10 7 2 6 2 так легче но здесь в вашей идее я бессилен не знаю что такое id_unit (поле 1 в таблице №2 ) и какова роль может ли быть счетчиком и опять бессилен
0
|
Заблокирован
|
|
24.02.2020, 22:20 [ТС] | 7 |
БРАВО, ВЫ УДАЛИЛИ ПОЛЬЗОВАТЕЛЯ, КОТОРОМУ ПРИНАДЛЕЖИТ ТЕХНИКА, ЕГО ID_USER был равен 1
Добавлено через 1 минуту ахринеть, перестановка id_user значительно облегчило решение вопроса
1
|
23 / 30 / 4
Регистрация: 08.12.2019
Сообщений: 221
|
|
24.02.2020, 22:31 | 8 |
Verolomstvo, НЕТ ВСЁ на месте
смотрите внимательней!! а если не поняли настоятеьно реклмендую разобраться потому что я показал просто классический вариант - ничего такого.. Добавлено через 3 минуты возможно вы предоставили мало даннных и я внешний ключ рапологающийся первым не счел таковым по своей привычке оформления. (такое возможно) в таком случае алгоритм такой выбираете 1 строку (не должно быть сложно но параметр поиска знаете только ВЫ - вы не предоставили опять этих данных) производите расчет для параметра поиска второй строки (нужно получить условие для поиска исходя из данных из полученной первой) если надо после выбора второй производите расчет (нужно получить условие для поиска) для поиска третьей ... найденные строки объединяете оператором Union.... оперируете. .
0
|
Заблокирован
|
|
24.02.2020, 22:46 [ТС] | 9 |
anamnado, тут не нужны никакие ключи, тут пользователи с техникой могут вообще идти вперемешку, и добавление техники даже не контролируется никаким уникальным даже составным ключом по запросу insert ignore потому что нет ключа и нет такого запроса для добавления всё совсем по другому и вопроса не касается
0
|
23 / 30 / 4
Регистрация: 08.12.2019
Сообщений: 221
|
|
24.02.2020, 22:54 | 10 |
я вас не понимаю
тогда мы опять вернулись к ошибке под названием избыточность данных (Можно почитать чтобы понять что это). исходя из структуры таблицы в ПОcТ N1 и опять из за этого геморрой. и он будет преследовать всегда. (каждый шаг будет с геммороем) И ответ я пока что тоже не знаю.
0
|
Заблокирован
|
|
25.02.2020, 01:46 [ТС] | 11 |
ну это же полная дичь и ахинея
Добавлено через 1 минуту какая нахуй и где ошибка?
0
|
23 / 30 / 4
Регистрация: 08.12.2019
Сообщений: 221
|
|
25.02.2020, 02:49 | 12 |
да ееееешкин барсук
ну что мне повторяться: вот это , если здесь поле id_user НЕ внешний Ключ то это ошибка! я сказал как она называется. (информация всё есть в инете) (а вы сказал что вам они не нужны выходит что так и есть). почитать разобраться - поможет! Добавлено через 12 минут можно игнорировать! - но трудности (уже и будут дальше) в манипулировании данными у вас, а не у меня .... {удачи} Добавлено через 19 минут ну тут .. я не могу да и не хочу здесь учебники пересказывать , все таки это 200 страниц, Но кратко суть следующая - вот эта на первый взгляд не такая серьезная ошибка - и может и скорее всего вы и найдете способ решения для вот этой задачи, но с большой вероятностью в последствии при разрастании Базы и добавлении еще таблиц или при работе с другими уже имеющимися, она приведет к другой, уже серьезной ошибки (ведь у вас еще есть таблицы для своей идеи) - нарушение целостности БД. ии всё - абзац. [ а это переделывать всё - сруктуру БД, которая тянет переделку алгоритмов работы с НЕй.] Но если в этом проекте в БД всего лишь 1 таблица вот такая таблица то можно побрыкаться и когда она в таком вот виде. [тыж программист и предупрежден - можешь просчитать то что я сказал.. лично я опасность вижу. но не знаю твой проект, сам если не видишь не чуешь - делай - просто не поленись потрать 1 час (зесмля с оси не сойдет за эт время) и попросчитывай...]
0
|
Заблокирован
|
|
25.02.2020, 04:11 [ТС] | 13 |
0
|
23 / 30 / 4
Регистрация: 08.12.2019
Сообщений: 221
|
|
25.02.2020, 06:45 | 14 |
0
|
25.02.2020, 06:45 | |
25.02.2020, 06:45 | |
Помогаю со студенческими работами здесь
14
Как организовать такую структуру Как организовать выборку бо брендам К-кратный цикл: как организовать такую структуру? Как организовать выборку по дате в SQLite? как организовать выборку в одном запросе Возможно ли организовать такую сеть Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства
Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
|
Что такое NullReferenceException и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
|
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
|
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
|
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
|
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
|
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее:
На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
|
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript
В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
|
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
|
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|