У меня есть таблица MySQL, в которой я поддерживаю отношения друг к другу. Таблица предназначена для хранения списков партнеров для программы статистики форева. У игрока может быть 0, 1 или 2 партнера.От одного к большому поисковому запросу
Например:
___________________________________
| Table index | Partners | Players |
| 1 | 1 | John | - Singles, no partners
| 2 | 2 | John | - Doubles, John and Bob
| 3 | 2 | Bob | - Doubles, John and Bob
| 4 | 3 | Dave | - Roto doubles, Dave, Bob, John
| 5 | 3 | Bob | - Roto doubles, Dave, Bob, John
| 6 | 3 | John | - Roto doubles, Dave, Bob, John
| 7 | 4 | Dave | - Singles, no partners
____________________________________
Я пишу PHP скрипт для добавления и извлечения партнеров из-за стола и у меня возникли проблемы с моими запросами. Я знаю игроков и хочу получить поле партнеров. Мне нужно выполнить три запроса:
- не проверять партнеров - Одиночные игры;
- проверить для конкретного партнера - удваивается с «Dave»;
- проверить наличие двух конкретных партнеров - удваивается с «Боб и Дейв»;
Если запись существует, я хотел бы ее загрузить, если нет, то я добавлю эту запись в таблицу. Одна из проблем, которые у меня есть, например, у игрока «Джон» есть три записи, ни партнеры, ни один партнер и два партнера. Как указать только вытаскивание ввода 1, а не 2 или 6?
Я искал здесь и нашел несколько примеров, которые близки, но не совсем то, что мне нужно. Этот mySQL: Querying one-to-many -table? почти делает то, что мне нужно, но не совсем.
Любая помощь была бы принята с благодарностью.
Chris
Почему последняя строка, четыре партнера, означает «синглы без партнеров»? – Blazemonger
Вы сохраняете только производную информацию - это будет сложно поддерживать. Вам также не нужно вводить информацию, которая сотрудничает с кем? В этом случае просто поддерживайте таблицу партнерских отношений и получайте количество партнеров для каждого игрока с запросом. – reinierpost
Извините, название столбца «партнеры» было бы лучше названо - «partnerID». Это индекс, указывающий партнерские отношения, а не количество партнеров, которых имеет данный человек. Мой оригинальный пост может ввести в заблуждение. – vrstud