link: default null, но значение notNULL. Структура таблиц, значение по умолчанию
Всегда при не простых запросах у меня возникают проблемы с агрегативными функиями :(
mysql> describe usopt;
+---------------+---------------------+------+-----+------------------------------------------+
| Field | Type | Null | Key | Default |
+---------------+---------------------+------+-----+------------------------------------------+
| uid_usopt | int(10) unsigned | NO | PRI | NULL |
| usname | varchar(25) | NO | | NULL |
| skinid_usopt | int(10) unsigned | NO | | 1 |
mysql> describe skin;
+--------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+------------------+------+-----+---------+----------------+
| skinid | int(10) unsigned | NO | PRI | NULL | auto_increment |
| skin_name | varchar(32) | NO | | NULL | |
| uid_skinfrom | int(10) unsigned | NO | MUL | NULL | |
| skin_way | varchar(32) | NO | | NULL | |
| date_skin | int(10) unsigned | NO | MUL | NULL | |
//////////////////////////////////////////////////////////////////////////
uid_usopt=uid_skinfrom
skinid=skinid_usopt
А как сделать подсчет в одном запросе?
UPD Удалил подробное описание вопроса.
Да. Группировка решила проблему
mysql> select skin_name,uid_skinfrom,date_skin,usname,count(skinid) from skin join usopt on skinid=skinid_usopt group by skin_name;
+------------+--------------+------------+----------------------------------------------------+---------------+
| skin_name | uid_skinfrom | date_skin | usname | count(skinid) |
+------------+--------------+------------+----------------------------------------------------+---------------+
| default | 8736 | 1294967295 | WWWWWWWWWWWWW | 23 |
| number4 | 8739 | 1294967295 | User8748 | 3 |
| pink | 8740 | 1294967295 | User8738 | 6 |
| standart | 8737 | 1294967295 | ффффффввввввввввааааааааа | 2 |
| пятый | 8736 | 1499969514 | User8751 | 2 |
+------------+--------------+------------+----------------------------------------------------+---------------+
5 rows in set (0.00 sec)
mysql> select skin_name,uid_skinfrom,date_skin,usname,count(skinid_usopt) from skin join usopt on skinid=skinid_usopt group by skin_name;
+------------+--------------+------------+----------------------------------------------------+---------------------+
| skin_name | uid_skinfrom | date_skin | usname | count(skinid_usopt) |
+------------+--------------+------------+----------------------------------------------------+---------------------+
| default | 8736 | 1294967295 | WWWWWWWWWWWWW | 23 |
| number4 | 8739 | 1294967295 | User8748 | 3 |
| pink | 8740 | 1294967295 | User8738 | 6 |
| standart | 8737 | 1294967295 | ффффффввввввввввааааааааа | 2 |
| пятый | 8736 | 1499969514 | User8751 | 2 |
+------------+--------------+------------+----------------------------------------------------+---------------------+
5 rows in set (0.00 sec)
mysql>
но осталось обдумать как и что делать с теми скинами что отсутствуют в usopt.
Все оказалось так просто. Но книгу Грубера (грабера) хочу купить!
ураа. Я решил "проблему" с подсчетом (точнее с выводом) тех скинИД, который нет в тбл usopt. Я думал отложить на утро\день решение этого. НО ... Все оказалось так просто! Хотя осталось по мелочам доработать запрос (или\и php код).
mysql> select skin_name,uid_skinfrom,date_skin,usname,count(skinid_usopt) from skin left join usopt on skinid=skinid_usopt group by skinid;
+------------+--------------+------------+----------------------------------------------------+---------------------+
| skin_name | uid_skinfrom | date_skin | usname | count(skinid_usopt) |
+------------+--------------+------------+----------------------------------------------------+---------------------+
| default | 8736 | 1294967295 | WWWWWWWWWWWWW | 23 |
| pink | 8740 | 1294967295 | User8738 | 6 |
| standart | 8737 | 1294967295 | ффффффввввввввввааааааааа | 2 |
| number4 | 8739 | 1294967295 | User8748 | 3 |
| пятый | 8736 | 1499969514 | User8751 | 2 |
| 666666666 | 8753 | 0 | NULL | 0 |
+------------+--------------+------------+----------------------------------------------------+---------------------+
6 rows in set (0.00 sec)
mysql>
upd Сделал еще проще: в таблице храню количество. При использовании пользователем скина, в полеКоличества табл +1 для нового скина. А для старого -1. В решении с группировкой была проблема получения имени пользователя.
Это снимает нагрузку из другой таблицы (не нужно каждый раз шерстить таблицу и считать количество). Так как ВСЕ-все понятно только мне, я дам простой совет: Если вы долго над чем-то ломаете голову... отдохните пру минут (часов), НЕ ДУМАЯ, о проблеме. и снова в бой: НУЖНО как можно более все упрощать. Что-то хотел еще написать (по теме), но забыл :(
Дана таблица в которой перечислены все дуги связного ориентированного графаВ таблице два числовых поля, в первом указана начальная вершина...
Вот, к примеру, есть всего 10 достаточно больших блоков с каким-либо фоном, которые не умещаются на экранеВ строке по 2 таких блока
Здравствуйте! Стал интересен парсинг html-страниц, начал разбираться с Jsoup, почитал несколько довольно стареньких гайдов по этому поводу(там...