как узнать сколько записей в таблице sql
Как определить количество строк в таблице в базе данных MySQL
Однажды я столкнулся с тем, что мне нужно было посчитать количество строк в таблице SQL, но многие из предлагаемых в интернете решений у меня не работали. И всё же я нашёл выход.
Способ 1. phpMyAdmin
Начнем с самого простого и очевидного. Допустим, вам не нужно использовать полученный результат в коде, а просто узнать количество строк, только и всего.
Тогда заходим в phpMyAdmin (localhost/tools/phpmyadmin — для Денвера, localhost/phpMyAdmin для MAMP), затем выбираем нужную базу данных, после этого выбираем таблицу, количество строк в которой нужно выяснить, и видим следующее сообщение:
Способ 2. COUNT
Вот так выглядит сам SQL-запрос:
SQL-запрос с условием:
Аналогичным образом сюда можно добавить условие. Тогда код выведет число строк в таблице, удовлетворяющих условию.
Способ 3. mysql_num_rows
Этот способ позволяет подсчитать количество строк результата запроса.
В результат будут включены абсолютно все записи. А как узнать количество только тех, которые опубликованы? Для этого нам потребуется немного изменить SQL-запрос.
Смотрите также
Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.
Если вам нужна помощь с сайтом или разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда будем рады вам помочь!
Как узнать количество записей в SQL-выборке
Очень часто нам не требуется извлекать данные из таблицы, однако, нам необходимо узнать количество записей в определённой SQL-выборке, в частном случае, количество записей в таблице. Вот как узнать количество записей в SQL-выборке, я расскажу в этой небольшой статье.
На самом деле всё очень просто, и нам нужна всего лишь функция COUNT():
SELECT COUNT(*) FROM `table` WHERE `field_1`=’value_1′
После выполнения данного запроса будет возвращён result_set, в котором будет храниться массив, содержащий элемент COUNT(*) со значением количества записей в таблице «table«, где поле «field_1» имеет значение «value_1«.
Другой пример. Допустим, надо узнать просто количество записей. Тогда то же самое, но без WHERE:
SELECT COUNT(*) FROM `table`
И давайте, напоследок, подкину ещё один пример. Допустим, Вам необходимо подсчитать количество уникальных записей в таблице:
SELECT COUNT(DISTINCT `field_1`) FROM `table`
Вот такой нехитрой функцией COUNT() можно легко узнавать количество записей в SQL-выборке, не извлекая при этом сами записи и экономя ресурсы.
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Комментарии ( 45 ):
Вряд ли дело в хостинге, Вы проверьте значения переменных shift и num_data. А также «не работает» понятие растяжимое. Выдаются ли какие-нибудь ошибки? Или просто пустой результат выходит?
Тогда проблема в значении переменных, можете ещё попробовать через соединение строк: «LIMIT «.$shift.», «.$num_data
Я так пробовал всё равно пустой результат, но в переменных лежат числа я проверял конечно я не проверял на int
Сейчас проверяю, главное что на localhoste всё работает
Спасибо Михаил за помощь разобрался просто в функции не изменил один параметр
Функция COUNT (Transact-SQL)
Эта функция возвращает количество элементов, найденных в группе. Функция COUNT работает подобно функции COUNT_BIG. Эти функции различаются только типами данных в возвращаемых значениях. Функция COUNT всегда возвращает значение типа данных int. Функция COUNT_BIG всегда возвращает значение типа данных bigint.
Синтаксические обозначения в Transact-SQL
Синтаксис
Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.
Аргументы
ALL
Применяет агрегатную функцию ко всем значениям. Аргумент ALL используется по умолчанию.
DISTINCT
Указывает, что функция COUNT возвращает количество уникальных значений, не равных NULL.
expression
Выражение любого типа, кроме image, ntext и text. Обратите внимание, что функция COUNT не поддерживает агрегатные функции и вложенные запросы в выражении.
*
Указывает, что функция COUNT должна учитывать все строки, чтобы определить общее количество строк таблицы для возврата. Функция COUNT(*) не принимает параметры и не поддерживает использование аргумента DISTINCT. Для функции COUNT(*) не требуется параметр expression, так как по определению она не использует сведения о конкретном столбце. Функция COUNT(*) возвращает количество строк в указанной таблице с учетом повторяющихся строк. Она подсчитывает каждую строку отдельно. При этом учитываются и строки, содержащие значения NULL.
Типы возвращаемых данных
Remarks
Функция COUNT(*) возвращает количество элементов в группе. Сюда входят значения NULL и повторяющиеся значения.
Функция COUNT(ALL expression) вычисляет expression для каждой строки в группе и возвращает количество значений, не равных NULL.
Функция COUNT(DISTINCT expression) вычисляет expression для каждой строки в группе и возвращает количество уникальных значений, не равных NULL.
COUNT — это детерминированная функция, если она используется без _ предложений OVER и ORDER BY. Она не детерминирована при использовании _ с предложениями OVER и ORDER BY. Дополнительные сведения см. в статье Детерминированные и недетерминированные функции.
Примеры
A. Использование функции COUNT и параметра DISTINCT
В этом примере функция возвращает количество различных должностей, которые может иметь сотрудник Компания Adventure Works Cycles.
Б. Использование функции COUNT(*)
В этом примере функция возвращает общее количество сотрудников Компания Adventure Works Cycles.
В. Использование функции COUNT(*) совместно с другими статистическими функциями
Г. Использование предложения OVER
Примеры: Azure Synapse Analytics и Система платформы аналитики (PDW)
Д. Использование функции COUNT и параметра DISTINCT
В этом примере функция возвращает количество различных должностей, которые может иметь конкретный сотрудник компании.
Е. Использование функции COUNT(*)
Ж. Использование функции COUNT(*) совместно с другими статистическими функциями
З. Использование функции COUNT с предложением HAVING
И. Использование функции COUNT с предложением OVER
Давайте вспомним, какие сообщения и в каких темах у нас имеются. Для этого можно воспользоваться привычным запросом:
А что, если нам надо лишь узнать сколько сообщений на форуме имеется. Для этого можно воспользоваться встроенной функцией COUNT(). Эта функция подсчитывает число строк. Причем, если в качестве аргумента этой функции выступает *, то подсчитываются все строки таблицы. А если в качестве аргумента указывается имя столбца, то подсчитываются только те строки, которые имеют значение в указанном столбце.
В нашем примере оба аргумента дадут одинаковый результат, т.к. все столбцы таблицы имеют тип NOT NULL. Давайте напишем запрос, используя в качестве аргумента столбец id_topic:
Итак, в наших темах имеется 4 сообщения. Но что, если мы хотим узнать сколько сообщений имеется в каждой теме. Для этого нам понадобится сгруппировать наши сообщения по темам и вычислить для каждой группы количество сообщений. Для группировки в SQL используется оператор GROUP BY. Наш запрос теперь будет выглядеть так:
Предположим, что нас интересуют только те группы, в которых больше двух сообщений. В обычном запросе мы указали бы условие с помощью оператора WHERE, но этот оператор умеет работать только со строками, а для групп те же функции выполняет оператор HAVING:
В результате имеем:
Итак, сегодня мы узнали, как создавать группы и как подсчитать количество строк в таблице и в группах. Вообще вместе с оператором GROUP BY можно использовать и другие встроенные функции, но их мы будем изучать позже.
Видеоуроки php + mysql
Если этот сайт оказался вам полезен, пожалуйста, посмотрите другие наши статьи и разделы.
Определяем количество записей MySQL: пример кода
Функция COUNT()
Функция COUNT() возвращает количество записей в таблице, соответствующих заданному критерию.
Например, функция COUNT(*) возвращает общее количество записей в таблице:
Как посчитать количество записей и вывести на экран
Пример PHP+MySQL-кода для подсчета и вывода общего количества строк:
Использование функции COUNT() на примере
id | name |
---|---|
1 | «Пломбир № 1» |
1 | 100% мороженое |
1 | Эскимо № 1 |
2 | «Румба» |
2 | «Фрутсок» |
Задача: Нужно посчитать, сколько наименований мороженого содержится в каждой категории.
Решение этой задачи очевидно:
SELECT id, COUNT(*) FROM ice_cream GROUP BY id
Результат:
id | count |
---|---|
1 | 3 |
2 | 2 |
Если надо вывести населенный пункт и количество населенных пунктов в городе, то можно воспользоваться таким кодом:
Резюме
Есть таблица ORDER в которой отражаются заказы. В ORDER есть поле ITEM — наименование товара. Как одним запросом или вложенным запросом подсчитать какой товар заказывали больше всего? То есть узнать какое количество строк с одинаковым наименованием самое большое в таблице.
Всем заранее спасибо!
Как обычно сам и отвечаю:
SELECT item, COUNT(item) AS count FROM order GROUP BY item ORDER BY count DESC;
На выходе получаем количество вхождений каждого ITEM в порядке убывания.
Сорри, что сразу не мог ответить. Вы сделали все правильно.
SELECT item, COUNT(item) AS count FROM order GROUP BY item ORDER BY count DESC LIMIT 1;
SELECT item — это поле таблицы. В возвращаемом результате (а результатом будет таблица) поле будет иметь такое же имя.
COUNT(item) AS count
a AS b — в SQL значит «считать, что указаный объект/выражение a имеет имя b ».
Обычно пользуюсь таким:
Да, lukesky, клево. Спасибо за пример.
Если надо только посчитать количество записей, то использовать функцию mysql_num_rows наиболее оптимально.
Но если, кроме определения количества записей, данные необходимо еще обрабатывать, то придется делать новый запрос и тогда использовать данную функцию будет не целесообразно.
3.5.1 Максимальное значение столбца
«Как определить наибольшее значение в столбце?»
SELECT MAX(article) AS article FROM shop
3.5.2 Строка, содержащая максимальное значение некоторого столбца
«Как определить номер, дилера и цену самого дорогого изделия?»
В ANSI SQL (и MySQL 4.1) это легко делается при помощи вложенного запроса:
SELECT article, dealer, price
FROM shop
WHERE price=(SELECT MAX(price) FROM shop)
В версиях MySQL до 4.1 такая задача выполняется в два этапа:
1. Следует получить максимальное значение цены из таблицы при помощи оператора SELECT.
2. Используя это значение, необходимо составить следующий запрос:
SELECT article, dealer, price
FROM shop
WHERE price=19.95
Существует еще одно решение: отсортировать все строки по убыванию цен и после этого получить первую строку, используя специальный оператор LIMIT:
SELECT article, dealer, price
FROM shop
ORDER BY price DESC
LIMIT 1
Примечание: если существует несколько самых дорогих изделий (например, каждое из них стоит 19,95), запрос, использующий LIMIT, возвращает лишь одно из них!
3.5.3 Максимальное значение столбца для группы
«Как определить наибольшую цену по каждому изделию?»
SELECT article, MAX(price) AS price
FROM shop
GROUP BY article
+———+——-+
| article | price |
+———+——-+
| 0001 | 3.99 |
| 0002 | 10.99 |
| 0003 | 1.69 |
| 0004 | 19.95 |
+———+——-+
Не обязательно вводить вторую переменную:
$result = mysql_query(«SELECT COUNT(*) FROM news»);
$result = mysql_num_rows($result);
У меня, ребята такой вопрос. Как организовать передачу переменной методом GET в джумле?
Это не связано с Джумлой. Вы допустили ошибку в синтаксисе передачи параметров метода GET.
index.php?option=com_content&view=article&id=13&Itemid=13 ? a=5
Вместо второго вопросительного знака нужно поставить амперсанд:
index.php?option=com_content&view=article&id=13&Itemid=13 & a=5
Спасибо за подсказку.
Пожалуйста
Имеются строки с записями:
`id` | `user_id` |
---|---|
1 | 2 |
2 | 3 |
3 | 3 |
4 | 4 |
5 | 4 |
6 | 4 |
Почему-то у меня не считает количество строк
Результат подсчета количества записей в каждой группе должен быть таким:
user_id | количество записей |
---|---|
2 | 1 |
3 | 2 |
4 | 3 |
Для определения количества записей в каждой группе — запрос правильный
$res = mysql_query(«SELECT user_id, COUNT(*) FROM table GROUP BY user_id»);
COUNT(*) — считает сколько всего записей. В комбинации с GROUP BY идет подсчет записей в каждой группе, а не количество групп.
А как тогда посчитать количество групп?
Запрос совершенно верен и полностью решает первоначально поставленную задачу. Если же задача поменялась, пожалуйста, уточните ее.
Спасибо, badevlad. Всегда рад твоим компетентным и исчерпывающим ответам.
Как пояснил fortresseo, данный запрос не подходит для решения, т. к. он выводит именно кол-во записей к каждой группе, а не кол-во групп.
И я не знаю как это сделать
Вроде так в MySQL можно:
SELECT COUNT(DISTINCT user_id) FROM table
Или вот так, чуть сложнее:
SELECT COUNT(*) FROM (SELECT DISTINCT user_id FROM table) a
О_о. Кланяюсь Вам в ноги до пола
и огромное Вам спасибо. Оба запроса работают как часы.
Присоденяюсь с благодарностью за все подсказки Бадевлада в подсчете записей MySQL с уникальными значениями id.
Вы можете подсказать как вычислить разницу между датами в днях? Допустим есть дата начала и дата окончания проекта. Сколько дней занял проект?
Примерно вот так должно быть…
Подскажите пожалуйста! не знаю как решить… ничего не получается…
У меня на главной выводятся статьи. Пусть будет 3 статьи.
У каждой статьи есть ссылка на страничку с подробным описанием.
Пусть будет так: /articles-item.php?id=7&table=blogs_users
id post
1 7
2 7
3 4
4 2
5 7
6 4
Должен вывести. На главной возле каждой статьи должен показать сколько Комментов с таким же параметром что и ID Таблицы. если post =7 значит он относиться к таблице 7.
Очень помог код. Я использовал вариант с условием где название поля равнялось конкретному значению. Таким образом подсчитал кол-во записей с этим значением. Мне это было нужно, чтобы на сайте, в спец. предложения, нельзя было добавлять одинаковый товар дважды. Теперь всё ок.
Классно. Я очень рад, что вам это пригодилось.
SELECT COUNT(*) FROM таблица WHERE autor=’никнейм’
точнее:
SELECT COUNT(*) AS postuser FROM таблица WHERE autor=’никнейм’
и вот postuser и будет количество.
нужно посчитать количество одинаковых значений в каждом из двух столбцов, а потом вывести просто в цифрах
и сравнить эти два столбца
$per=(«Новочеркасский электровозостроительный завод»);
$per1=(«Луганский тепловозостроительный завод»);
$per2=(«Ишимский механический завод»);
$per3=(«Кандалакшский опытный машиностроительный»);
$per4=(«Коломенский завод»);
$per5=(«Пенза Дизельмаш»);
$per6=(«Завод им. Малышева»);
$per7=(«Волжский дизель»);
$per8=(«244»);
$per9=(«246»);
$per10=(«344»);
$per11=(«346»);
$per12=(«444»);
$per13=(«446»);
if ($total>$total2) <
echo («zavod»);
> else
echo («brig»);
во втором запросе что то не так, потому что он выводит общее количество строк, а в первом как надо, повторяющиеся
Помогите пожалуйста сделать как у вас на сайте и на других вывод количества комментарий в статье (39 комментариев:)
Задача решена, извените за неудобстава.
Статья взята из про. программирование на PHP, Дениса Колисниченко?
Хе-хе, нет. Она писалась в живую. Потом дополнялась и дорабатывалась. В самом начале она состояла из одного примера. Мой друг, программист, Денис Балыкин спросил: «Почему только один пример?».
Спасибо большое этому сайту! здесь нашел много интерестного, наверно самое гланая особеность этого сайта в том что здесь все с примерами и подробным описанием! еще раз спасибо большое автору сайта
Пожалуйста. Если нравится, то нажимайте +1 и Лайк. Я буду за это благодарен.
Здравсвтуйте, помогите реализовать следующее:
есть одинаковые ряды с разным количеством повторов, среди них нужно показать те, количество повторов равно 2.
По жтому запросу «SELECT number, COUNT(number) AS count FROM tab_data GROUP BY number» получаю:
number count
2934234 28
2934235 5
2934236 42
2934238 2
2934239 3
2934240 2
2934247 2
2934248 2
2934249 2
2934250 2
2934251 9
2934252 2
2934253 2
2934256 3
А именно с count 2 не могу вытянуть.
Могу предложить только это:
Пол кода при вставке стирается((( Админы, что за?
Здравствуйте!
Кажется, всё понятно после вашего урока, ан не получается, прошу помоши.
Есть три таблицы:
таблица разделов parts с полями: id | part (плодовые, овощи, ягоды …)
таблица категорий cats с полями: id | id_part | cat (яблоня, картофель, клубника…)
таблица статей data с полями: id | id_cat | text | остальные поля.
Естественно, `cats`.`id_part`=`parts`.`id` и `data`.`id_cat`=`cats`.`id`
Вот мой запрос, выводящий в меню разделы и категории, причем пустые категории он не выводит, это так и надо:
Пожалуйста, подскажите, как изменить запрос и получить переменную $count количества статей, соответствующих нужной категории.
Спасибо.
Вот какой вопрос.
SQL-запросы в visual foxpro. условие вывести количество изданий на карточке каждого читателя. объяснили так
SELECT CNT(num), name1+’ ‘+LEFT(name2,1)+’.’+LEFT(name3,1)
FROM fond, abonent
WHERE fond.num=abonent.num
GROUP by num,name1
не работает. запросы мы изучали мельком, потому сама не могу понять.
LOCAL cSQL, cKod
SELECT 2
cKod=ALLTRIM(STR(num))
cSQL=»SELECT COUNT(fond.num), abonent.name1+’ ‘+LEFT(abonent.name2,1)+’.’+LEFT(abonent.name3,1)+’.’ » + ;
» FROM base3!fond, base!abonent» + ;
» WHERE fond.num = abonent.num » + ;
» GROUP BY num, name1 »
WITH thisform.Grid2
.RecordSource=’ ‘
.RecordSource=cSQL
ENDWITH
Задача в SQL. Есть таблица с колонками UserID (имя юзера), TimeUsers (указывает время проведенное на сайте), Datetime (день в который юзер был на сайте), UserApp (устройство с которого заходил юзер). За один день юзер мог заходить на сайт несколько раз с разным временем прибывания.
Нужно вывести по каждому юзеру суммарное время за конкретный день и с кого устройства заходил юзер.
Спасибо!
Сначала вытаскиваем устройства конкретного юзера за день:
SELECT `UserApp` FROM `tablename` WHERE `UserID` = ‘нужное нам имя юзера’ AND `Datetime`= ‘нужная нам дата’
Далее суммируем время посещения:
SELECT `TimeUsers` FROM `tablename` WHERE `UserID` = ‘нужное нам имя юзера’ AND `Datetime`= ‘нужная нам дата’ GROUP BY `TimeUsers`
Здравствуйте!
Помогите решить следующую задачу.
имеется 2 таблицы:
id1 descript
1 descr1
2 descr2
3 desct3
id1 id2
1 1
1 2
2 3
2 4
2 5
Требуется составить запрос в SQL, который бы выводил
id1 descript count
1 descr1 2
2 descr2 3
count — количество включений id1 во 2-ю таблицу.
Здравствуйте. Завела в тупик следующая задача, помогите разобраться.
Есть 2 таблицы:
-posts [id, title, text]
-comments [comment_id, post_id, text, published]
Необходимо вывести все записи из таблицы post а так же количество опубликованных (т.е. published = TRUE) комментариев.
SELECT p.*, c.*, COUNT(*) AS `counts` FROM `posts` AS p, `comments` AS c WHERE c.published = 1 AND p.id = c.post_id GROUP BY c.post_id
всем пивет нужна помощь, есть таблица
id name_hotel zvezd
1 название1 5
2 название 2 4
3 название 3 5
нужно сделать чтобы считалось
5 звезд столько то ( тобишь чтоб вывелось 2)
4 звезды столько то (а здесь 1)
SELECT `zvezd`, COUNT(*) AS `counts` FROM `tablename` GROUP BY `zvezd`
Спасибо, смог вывести количество комментариев к материалу
Таблица такая
lgid
18
18
7
18
7
7
12
12
как в массив вывести
18=>3
7=>3
12=>2
Поможете? Заранее спасибо
Спасибо. Четко, быстро и по смыслу.
Понадобился, так этот сниппет прямо скопировал, имя таблицы заменил и вывел себе в форме.
Я в ступоре с этим COUNT:
SELECT *, COUNT(`id`) AS `countid` FROM `material` WHERE `company` = ’23’ ORDER BY `id` DESC
COUNT считает хорошо, но склеивает записи
А мне хочется и все эти записи выбрать и вывести и их общее количество получить.
Пытался обмануть:
SELECT *, COUNT(`id`) AS `countid` FROM `material` WHERE `company` = ’23’ GROUP BY `id` ORDER BY `id` DESC
тогда напротив каждой записи единичка ))))
А нельзя чтоли просто посчитать кол-во выбранных записей?
А можно и просто после выбора записей из базы просто посчитать их php функцией count():
$totalRows = count($list);
Это на скорую руку написал, можно и оптимизировать и упростить, но принцип такой)
Нет, просто не получится:
Ну может тогда JOIN LEFT или что то вроде этого?
Здравствуйте.
Есть база «uchot», и таблица «pacient»
Id first_name last_name date
1 Степан Иванов 12/03/ 2014
2 Смирнов 12/03/2014
3 Вадим Попов 13/03/2014
4 Денис Новиков 14/03/2014
Как видно из таблицы в 2 строке не заполнен столбец «data_outcoming»
Нужно составить запрос к MYSQL
Вопрос:1. Как подсчитать количество строк у которых заполнен столбец » first_name»?
Вопрос: 2. Как подсчитать количество строк у которых незаполнен столбец » first_name»?
Вот структура базы
CREATE TABLE IF NOT EXISTS `patient` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`first_name` varchar(255) NOT NULL,
`last_name` varchar(255) NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
Такой вариант не подходит!
$sql=’SELECT COUNT (*) as count FROM `pacient` WHERE `first_name`IS NULL’;
$res=mysql_query($sql);
$counts=mysql_fetch_assoc($res);
$count=$counts[‘count’];
echo ‘ ‘.$count.’ ‘;
Поле first_name это строка (varchar) — по этому просто смотрим пустая она или нет…
Спасибо за ответ.
А как выводить число заполненных и не заполненных строк,
и как будет выглядить если строка не (varcher) а (data)?
как будет выглядить если строка не (varcher) а (data)? В смысле поле `date` из вашего примера?
Нет. Там «date» автозаполняемое поле, просто если там будет вводится дата?
Вот мой index.php
Добавить нового пациента
Нужно выводить число не заполненых полей «phone» и заполненных полей «phone»
. По этому запросу ничего не выводить
Здравствуйте, такой вопрос, имеются три таблицы:
1) people (id, name, age, height) — название таблицы (столбцы в ней) — люди
2) cities (id, name) — города
3) visits (id, person_id, city_id, date) — посещения
person_id — внешний ключ к таблице people
city_id — внешний ключ к таблице cities
Вопрос заключается в следующем: нужно вычислить человека совершившего наибольшее кол-во поездок.
Нужно объединить таблицы и вычислить одним запросом, подскажите как?
Из выше приведенных комментариев использовал:
SELECT name, COUNT(person_id) AS count FROM `people`, `visits` GROUP BY person_id ORDER BY count DESC LIMIT 1;
Вроде бы эта команды работает, но она выдает странные результаты (в моем случае):
(name) Катя, (count) 1188
Это наврятли может быть верным, так как в visits всего 500 записей
По идее должно быть так:
SELECT p.name, COUNT(v.person_id) AS count FROM people AS p, visits AS v WHERE v.person_id = p.id ORDER BY count DESC
Здравствуйте, есть 2 таблицы users и uchet. Они связанны между собой по (users) id и (uchet) users_id. Как будет выглядеть запрос для вывода количества данных из таблицы uchet в котором поле «bolezn» равно «Грип» и соотвественно вывод всег юзеров из таблизы users у которых есть больезнь «грип»?
Очень просто:
SELECT u.id AS userid, u.*, uc.id AS uchetid, uc.* FROM users AS u, uchet AS uc WHERE uc.bolezn = ‘Грип’ AND u.id = uc.users_id
Суть еще в том, чтоб небыло одинаковых названий полей.
По идее должно быть так:
SELECT p.name, COUNT(v.person_id) AS count FROM people AS p, visits AS v WHERE v.person_id = p.id ORDER BY count DESC LIMIT 0, 1
Здравствуйте, Есть у меня база в каторой строка «date» формат DATE добавлаю туда дату с помощю
,
Дело втом что выводится дата типа 2014-09-01, как можно на этом примере конвертировать дату на 01-09-2014, буду благодарен за помощ.
Имеются 2 таблицы
CREATE TABLE IF NOT EXISTS `cw_users` (
`userid` int(25) NOT NULL AUTO_INCREMENT,
`first_name` varchar(25) CHARACTER SET utf8 NOT NULL DEFAULT »,
`last_name` varchar(25) CHARACTER SET utf8 NOT NULL DEFAULT »,
`email_address` varchar(50) CHARACTER SET utf8 NOT NULL DEFAULT »,
`username` varchar(25) CHARACTER SET utf8 NOT NULL DEFAULT »,
`password` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT »,
`info` varchar(50) CHARACTER SET utf8 NOT NULL,
`last_loggedin` varchar(100) CHARACTER SET utf8 NOT NULL DEFAULT ‘never’,
`user_level` enum(‘1′,’2′,’3′,’4′,’5’) CHARACTER SET utf8 NOT NULL DEFAULT ‘1’,
`forgot` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
`status` enum(‘live’,’suspended’,’pending’) CHARACTER SET utf8 NOT NULL DEFAULT ‘live’,
PRIMARY KEY (`userid`)
)
CREATE TABLE IF NOT EXISTS `reception` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`patient_userid` int(11) NOT NULL,
`doctor_name` text NOT NULL,
`fill_date` date NOT NULL,
`send_place` text NOT NULL,
`cart` text NOT NULL,
`date_re_out_select` text NOT NULL,
`date_in` text NOT NULL,
`recomended` text NOT NULL,
`director_type` text NOT NULL,
`director_name` text NOT NULL,
`date` text NOT NULL,
PRIMARY KEY (`id`)
)
таблица `reception` связана с таблицей `cw_users` соотвественно по `patient_userid` и `userid`.
Юзер, зарегистрировавшийся в таблице cw_users может добавлять материалы в таблицу `reception`,
Задача создать запрос, чтобы вывелся список юзеров зарегистрированных в таблице `cw_users` и перед ними было бы КОЛИЧЕСТВО (число) материалов, которые они добавили в таблицу `reсeption`. Ни как не могу сформировать запрос, помогите пожалуйста конкретным примером.
SELECT userid, first_name, last_name, COUNT(id)
FROM cw_users
JOIN reception ON patient_userid = userid
GROUP BY id
Как-то так. Без проверки и гарантии работоспособности. Плюс я не знаю, так ли все это в MySQL.
Почти. Одна поправка:
SELECT userid, first_name, last_name, COUNT(id) as count
FROM test_cw_users
JOIN test_reception ON patient_userid = userid
GROUP BY patient_userid
Заместо GROUP BY id нужно GROUP BY patient_userid