Я работаю над текстовым блоком SQL. Кроме того, у меня есть веб-сайт PHP/SQL, основанный на CMS. Я загрузил копию своего db, поскольку у меня есть понимание того, какие правильные результаты запроса должны быть, когда «исследуете».NEWB Мой первый запрос на SQL-запрос
На моем сайте есть функция «оповещений», в которой человек может регистрироваться на оповещения, а затем получать уведомления по электронной почте каждый раз, когда добавляется новый контент.
В частности, имеются две таблицы: alert и * alert_sent *. Alert содержит адрес электронной почты физических лиц и * alert_sent * содержит подробную информацию о каждом электронном письме, отправленном человеку. Итак, если я скажу, что в моей таблице оповещений зарегистрировано 100 человек, таблица содержит 100 записей. Если для простоты было десять новых статей, было отправлено в общей сложности 1000 сообщений электронной почты - от 10 до каждого получателя.
Когда я выхожу на задний план своего веб-сайта CMS, я могу видеть количество предупреждающих сообщений, полученных человеком. Я хотел бы попытаться воссоздать это, и, думаю, я почти там.
Чтобы получить все соответствующие записи я выполнил этот запрос:
SELECT alert.alert_recipient,alert_sent.id
FROM alert
INNER JOIN alert_sent
ON alert_sent.alert_id=alert.id;
Теперь у меня есть, что я хотел бы запросить этот запрос, чтобы показать тех людей, которые получили наибольшее количество предупреждений по электронной почте. Что-то вроде этого:
SELECT COUNT(DISTINCT, alert_recipient, ID) FROM myqueryabove
GROUP BY alert_recipient
ORDER id DESC
LIMIT 10;
У меня есть некоторый опыт работы с MS Access, где я бы просто сохранить запрос, дав ему имя, а затем выполнение запроса против него.
Я попробовал здесь:
SELECT alert.alert_recipient,alert_sent.id
-> FROM alert
-> INNER JOIN alert_sent
-> ON alert_sent.alert_id=alert.id
-> AS query_001;
Но что вернулся
ERROR 1064 (42000): У вас ошибка в вашем синтаксисе SQL
Как я запрашиваю мой запрос, чтобы вернуть список из десяти адресов электронной почты (alert_recipient), которые получили большинство уведомлений по электронной почте?
__ UPDATE и последовавший ОТВЕТЫ_ _ В дополнение к производству желаемых результатов, как указано в последнем предложении, моя цель состоит в том, чтобы понять, как запросить существующий запрос. Мне нравится идея фрагментов кода укуса кода, которые позже могут быть запрошены, как если бы они были таблицами, а не пытались поместить все в один и тот же запрос. Это продукт моего обучения в Access. Может быть, я неправильно подхожу к SQL? Возможно ли, что этот подход возможен в этом случае?
Привет, спасибо, что нашли время ответить, но это вызвало ошибку «ERROR 106 4 (42000): У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования около '10 alert_id, count (distinct alert_id) from alert_sent " Но, даже если это действительно работало, моя цель состояла в том, чтобы понять, как запросить существующий запрос. начал изучать БД с помощью Access, и это может быть источником того, как мое понимание работает. Обновление исходного Q ... –