Помощник
|
Помогите с запросом |
Kunapuc
|
Сообщение
#1
|
||
|
|
||
|
|||
Mulder_hb |
16.11.2010, 11:23;
Ответить: Mulder_hb
Сообщение
#2
|
|
Зависит от того, как используется эта таблица. Если данные должны быть действительно уникальными, то уникальность нужно контролировать при внесении данных, а не при их выборке.
|
|
|
Kunapuc
|
Сообщение
#3
|
|
Зависит от того, как используется эта таблица. Если данные должны быть действительно уникальными, то уникальность нужно контролировать при внесении данных, а не при их выборке. таблица result - это таблица результатов матчей футбольных, для ведения футбольной статистики homescore - это забитые голы домашней командой awayscore - забитые голы гостевой командой пример №1) 2- 1 ( домашняя команда забила два гола , гостевая 1 гол) №2) 1-2 (домашняя команда забила один гол, гостевая 2 гола) то есть запрос на выборку уникальных значений выведет 2- 1 - 1 (count) 1-2 - 1(count) .. нужно чтобы 2-1 и 1-2 считало как 2(count). Уникальность контролировать при внесении не могу ... |
|
|
Mulder_hb |
16.11.2010, 14:23;
Ответить: Mulder_hb
Сообщение
#4
|
|
пример №1) 2- 1 ( домашняя команда забила два гола , гостевая 1 гол) №2) 1-2 (домашняя команда забила один гол, гостевая 2 гола) Т.е. это все один и тот же матч? Тогда сама таблица построена не верно. У вас дублируются записи. Должно быть три таблицы. В первой таблице должна быть одна запись на один матч, а не две, как сейчас. Вторая таблица - список команд. Третья таблица связывает строку из первой с соответствующей строкой из второй. В этой же третьей таблице вы указываете, какая команда домашняя, а какая гостевая. CREATE TABLE IF NOT EXISTS `result_team` ( `id` int(5) NOT NULL AUTO_INCREMENT, `id_score` int(5) NOT NULL, `home_team` int(5) NOT NULL, `away_team` int(5) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY (`id_score`), FOREIGN KEY(`id_score`) REFERENCES `result` (`id`), FOREIGN KEY(`home_team`) REFERENCES `team` (`id`), FOREIGN KEY(`away_team`) REFERENCES `team` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; Условия ссылок продумайте сами. |
|
|
Kunapuc
|
Сообщение
#5
|
|
нет это два разных матча ..
вся структура таблицы result такая CREATE TABLE IF NOT EXISTS `result` ( `id` int(5) NOT NULL AUTO_INCREMENT, `homekey` int(5) NOT NULL, `awaykey` int(5) NOT NULL, `gamedate` date NOT NULL, `homescore` smallint(6) NOT NULL, `awayscore` smallint(6) NOT NULL, PRIMARY KEY (`id`), KEY `fk_result_homekey` (`homekey`), KEY `fk_result_awaykey` (`awaykey`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=230; где homekey - домашняя команда , порядковый номер которой берется с таблицы team awaykey - гостевая команда , порядковый номер которой берется с таблицы team структура таблицы team CREATE TABLE IF NOT EXISTS `team` ( `id` int(5) NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8 NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=18; -------------------------------------------------------------------------------------- INSERT INTO `team` (`id`, `name`) VALUES (1, 'Милан'), (2, 'Реал'), (3, 'Барселона'), (4, 'Динамо'), пример полностью homekey - awaykey - homescore - awayscore 1 2 2 1 3 4 1 2 где homekey 1 и 3 это номер команды , будет Милан и Барселона где awaykey 2 и 4 э то Реал - Динамо. тоесть выходит что Милан - Реал, сыграли с счетом 2-1 а Барселона-Динамо с счетом 1-2 |
|
|
Mulder_hb |
16.11.2010, 18:05;
Ответить: Mulder_hb
Сообщение
#6
|
|
Ну сама идея делать счет уникальным для разных матчей не верна. Это разные матчи и разные счета. Расскажите, для чего вам нужны уникальность счетов, и, возможно, данную проблему удастся решить куда проще. Вам надо посчитать сколько игр в туре закончилось, к примеру со счетом 2:1?
|
|
|
Kunapuc
|
Сообщение
#7
|
|
Ну сама идея делать счет уникальным для разных матчей не верна. Это разные матчи и разные счета. Расскажите, для чего вам нужны уникальность счетов, и, возможно, данную проблему удастся решить куда проще. Вам надо посчитать сколько игр в туре закончилось, к примеру со счетом 2:1? не в туре .. подсчитать все игры которые закончились со счетом 2:1(1:2), 1:0(0:1) и т.д.... это для статистики .. которая называться "Исходы".. чтобы было видно количество результатов матче и % от всех игр .. вот пример может готовый, вывод на страничку spa. Статистика исходов матчей
Счет Раз % от всех 1:0 14 35 % - тут 1:0 и 0:1 вместе 0:0 5 12,5 % 3:0 5 12,5 % - тут 3:0 и 0:3 вместе 2:0 4 10 % - тут 2:0 и 0:2 вместе 2:1 3 7,5 % - тут 2:1 и 1:2 вместе 1:1 2 5 % 2:2 2 5 % 5:1 1 2,5 % 7:0 1 2,5 % 3:1 1 2,5 % 5:0 1 2,5 % 4:0 1 2,5 % |
|
|
Mulder_hb |
16.11.2010, 23:04;
Ответить: Mulder_hb
Сообщение
#8
|
|
То, как сделано таблица сейчас, это не реализовать через запрос. Реализуйте через яп.
|
|
|
Kunapuc
|
Сообщение
#9
|
|
|
|
|
Mulder_hb |
17.11.2010, 0:55;
Ответить: Mulder_hb
Сообщение
#10
|
|
|
а какую структуру таблицы вы видите, для реализации через запрос ? Так сразу и не скажу. Надо все продумывать заранее. Быть может я бы вообще не делал таблицу счетов, а делал через забитые мячи данной команды и не важно, где она играла. ЯП - язык программирования, php, например.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Помогите вспомнить рекламного бота Телеграм для обмена рекламой | 0 | Mixatraider | 692 | 21.2.2024, 23:42 автор: Mixatraider |
|
Помогите рещить проблему с монитором. Почему низкое разрешение при подключении монитора через displayport? |
0 | Levels | 1695 | 11.12.2020, 0:48 автор: Levels |
|
Помогите кто нибудь получить партнерку Росбанк! | 7 | heisenberg_mw | 2315 | 7.8.2020, 9:28 автор: heisenberg_mw |
|
Помогите найти тему пожалуйста | 7 | virtas | 12399 | 24.7.2020, 17:02 автор: -JamesSmips- |
|
Помогите с поиском доноров | 3 | tehno_music | 3331 | 4.11.2019, 17:15 автор: goblin78 |
Текстовая версия | Сейчас: 28.3.2024, 17:53 |