Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RusFAQ.ru: Базы данных SQL


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Базы данных SQL

Выпуск № 363
от 08.04.2008, 01:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 466, Экспертов: 49
В номере:Вопросов: 1, Ответов: 2

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 130305: Здравствуйте, эксперты! Есть 4 таблицы: fa_users, fa_sessions, fa_email_aliases, fa_email_headers. Таблица fs_sessions связана с fs_users полем user_id. fa_email_aliases c fs_sessions - session_id fa_email_headers c fa_email_alia...

Вопрос № 130.305
Здравствуйте, эксперты!

Есть 4 таблицы: fa_users, fa_sessions, fa_email_aliases, fa_email_headers.
Таблица fs_sessions связана с fs_users полем user_id.
fa_email_aliases c fs_sessions - session_id
fa_email_headers c fa_email_aliases - email_id

Необходимо выбрать пользователей, количество сессий, алиасов и заголовков писем. Использовал для этого такой запрос, но оказалось, что он неверен:
SELECT u.user_id, CONCAT(u.first_name, ' ', u.last_name) name, COUNT(s.session_id) sessions, COUNT(a.email_id) aliases, COUNT(h.id) emails
FROM `fa_users` u
LEFT JOIN `fa_sessions` s ON s.user_id = u.user_id
LEFT JOIN `fa_email_aliases` a ON a.session_id = s.session_id
LEFT JOIN `fa_email_headers` h ON h.email_id = a.email_id
GROUP BY u.user_id
Отправлен: 03.04.2008, 00:35
Вопрос задал: Заикин Олег (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Коровин Александр
Здравствуйте, Заикин Олег!
В условие группировки Вам надо включить все столбцы, учавствующие в операторе SELECT, за исключением столбцов, использующихся в агрегатных функциях.
Ваш запрос должен быть таким:

SELECT u.user_id, CONCAT(u.first_name, ' ', u.last_name) name, COUNT(s.session_id) sessions, COUNT(a.email_id) aliases, COUNT(h.id) emails
FROM `fa_users` u
LEFT JOIN `fa_sessions` s ON s.user_id = u.user_id
LEFT JOIN `fa_email_aliases` a ON a.session_id = s.session_id
LEFT JOIN `fa_email_headers` h ON h.email_id = a.email_id
GROUP BY u.user_id, u.first_name, u.last_name
Ответ отправил: Коровин Александр (статус: 4-ый класс)
Ответ отправлен: 03.04.2008, 08:21
Оценка за ответ: 1
Комментарий оценки:
В данный момент мы имеем в таблице записи:
fa_users 1
fa_sessions - 2 записи
fa_email_aliases - 3 записи
fa_email_headers - 3 записи
Выполняя запрос, я получаю:
user_id name sessions aliases emails
1 Vasya Pupkin 6 5 3

Причем наличие группировки по имени никаких изменений не вносит. Так что задача не решена :(

Отвечает: Nomadfromx2007
Здравствуйте, Заикин Олег!
Надо в GROUP BY еще добавить группировку по выражению CONCAT(u.first_name, ' ', u.last_name)
Ответ отправил: Nomadfromx2007 (статус: 2-ой класс)
Ответ отправлен: 03.04.2008, 08:25
Оценка за ответ: 1
Комментарий оценки:
В данный момент мы имеем в таблице записи:
fa_users 1
fa_sessions - 2 записи
fa_email_aliases - 3 записи
fa_email_headers - 3 записи
Выполняя запрос, я получаю:
user_id name sessions aliases emails
1 Vasya Pupkin 6 5 3

Причем наличие группировки по имени никаких изменений не вносит. Так что задача не решена :(


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 4.72.8 от 05.04.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное