SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 26.05.2010 15:06:59

zeezee
Участник
Откуда: Москва
Зарегистрирован: 26.05.2010
Сообщений: 2

SELECT COUNT: Access выполняет запрос, а MySQL - нет. Почему?

Здравствуйте, светлые головы!
Помогите, пожалуйста, разобраться в причине ошибки.
Имеются две таблицы: artists с исполнителями (~2000 записей), albums с альбомами этих исполнителей (~15000 записей). Обе таблицы имеют свои аналоги как в Access, так и в MySQL. Общее поле - id_artist, которое в artists является ключевым. В artists один из столбцов имеет название country, идентифицирующий происхождение исполнителя. Цель запроса: узнать количество альбомов для каждой страны. Сам запрос:

SELECT country, count (album) FROM albums INNER JOIN artists ON albums.id_artist = artists.id_artist GROUP BY country;

Access справляется с задачей превосходно:

country    Expr1001
USA    5569
UK    4528
Germany    1217
Sweden    641
Canada    524
Australia    279
Finland    256
Russia    255
Norway    232
Netherlands    210
France    140
Italy    119
Denmark    119... и так далее



MySQL же ругается так: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(album) FROM albums INNER JOIN artists ON albums.id_artist = artists.id_artist G' at line 1

Запускал запрос в простом выводе на PHP странице - тот же нерезультат, через phpMyAdmin - аналогично. В чём дело?

Заранее спасибо.

Неактивен

 

#2 26.05.2010 15:17:34

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: SELECT COUNT: Access выполняет запрос, а MySQL - нет. Почему?

На пробел после count ругается.

Неактивен

 

#3 26.05.2010 17:17:14

zeezee
Участник
Откуда: Москва
Зарегистрирован: 26.05.2010
Сообщений: 2

Re: SELECT COUNT: Access выполняет запрос, а MySQL - нет. Почему?

Спасибо! Правда, удивлению моему нет предела. Никогда не мог предположить, что SQL в интерпретации MySQL так требователен к пробелам...

Отредактированно zeezee (26.05.2010 19:08:56)

Неактивен

 

#4 26.05.2010 22:10:59

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: SELECT COUNT: Access выполняет запрос, а MySQL - нет. Почему?

test >select count (*) from a;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds
 to your MySQL server version for the right syntax to use near '*) from a' at line 1
test >select @@sql_mode;
+----------------------------------------------------------------+
| @@sql_mode                                                     |
+----------------------------------------------------------------+
| STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+----------------------------------------------------------------+
1 row in set (0.00 sec)

test >set @@session.sql_mode='ignore_space';
Query OK, 0 rows affected (0.01 sec)

test >select count (*) from a;
+-----------+
| count (*) |
+-----------+
|         4 |
+-----------+
1 row in set (0.02 sec)


http://dev.mysql.com/doc/refman/5.0/en/ … nore_space

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson