Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [SQLite] Сложный запрос с ANY, SOME и ALL, почему не работает? 
V
    Опции темы
saneea
Дата 7.4.2011, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 13.7.2005

Репутация: нет
Всего: 0



Создаю такую табличку:

Код

CREATE TABLE PHOTOSTAGS(PhotoID INTEGER, PRIMARY KEY (PhotoID));


пытаюсь выполнить простейший сложный запрос (над смыслом запроса задумываться не надо, т.к. это просто для примера)
Код

SELECT PhotoID FROM PHOTOSTAGS WHERE PhotoID  > ALL (SELECT PhotoID FROM PHOTOSTAGS);

Выдаёт: "Error: near "ALL": syntax error"

меняю ALL на ANY
Код

SELECT PhotoID FROM PHOTOSTAGS WHERE PhotoID  > ANY (SELECT PhotoID FROM PHOTOSTAGS);

Выдаёт: "Error: near "SELECT": syntax error"

Очень странно, что на ALL и ANY SQLite по разному "ошибаеся"... или у него ALL это какое-то другое ключевое слово?
А при этом MySQL без проблем кушает эти же запросы... В чём может быть проблема?
PM MAIL   Вверх
Zloxa
Дата 8.4.2011, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Что по поводу ALL и ANY сказано в документации вашей версии SQLLite?


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
saneea
Дата 8.4.2011, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 13.7.2005

Репутация: нет
Всего: 0



Да вобще-то ничего я не нашёл по ANY и ALL... но ведь эти ключевые слова - это вроде часть SQL, т.е. любая СБД должна их поддерживать (ну это в моём понимании).
PM MAIL   Вверх
Zloxa
Дата 8.4.2011, 10:12 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(saneea @  8.4.2011,  10:09 Найти цитируемый пост)
любая СБД должна их поддерживать

Кому должна? smile 
Можешь подать на них в суд, если это так. smile 

Это сообщение отредактировал(а) Zloxa - 8.4.2011, 10:12


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
saneea
Дата 8.4.2011, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 13.7.2005

Репутация: нет
Всего: 0



Zloxa, то есть вы не знаете ответ на мой вопрос. Понятно. Спасибо.

Может у кого-нибудь есть мысли по делу?
PM MAIL   Вверх
Zloxa
Дата 8.4.2011, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



т.е. мысли кого-нибдуь для Вас более ценный источник нежели документация производитля и эмпирический опыт?  smile 

Это сообщение отредактировал(а) Zloxa - 8.4.2011, 13:14


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
LSD
Дата 8.4.2011, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 1
Всего: 538



saneea, 
Zloxa абсолютно прав. Давно бы уже пора заглянуть в документацию и убедится, что SQLite не знает таких операторов как ALL и ANY.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
saneea
Дата 8.4.2011, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 13.7.2005

Репутация: нет
Всего: 0



Ну ок, нет в SQLite кванторов ANY, SOME и ALL. Ну и как тогда выполнить запрос типа "выбрать записи, у которых такое_то поле больше, чем все (или хотя бы один) из (выбрать записи из таблицы ТАБЛИЦА)"?
PM MAIL   Вверх
LSD
Дата 8.4.2011, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 1
Всего: 538



А для этого у нас есть специальный раздел Составление SQL-запросов smile 


А вообще простые агрегатные функции min/max должны помочь.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Zloxa
Дата 8.4.2011, 15:14 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(saneea @  8.4.2011,  15:03 Найти цитируемый пост)
как 

О! Ну так это же совсем уже другой вопрос

Ответа на него не знаю, с ограничениями SQLite не знаком, но пробовал бы в первую очередь так:
Цитата(saneea @  8.4.2011,  15:03 Найти цитируемый пост)
такое_то поле больше, чем все

Код

SELECT PhotoID FROM PHOTOSTAGS WHERE PhotoID  >  (SELECT max(PhotoID) FROM PHOTOSTAGS)

Цитата(saneea @  8.4.2011,  15:03 Найти цитируемый пост)
или хотя бы один)

Код

SELECT PhotoID FROM PHOTOSTAGS WHERE PhotoID  >  (SELECT min(PhotoID) FROM PHOTOSTAGS)




Это сообщение отредактировал(а) Zloxa - 8.4.2011, 15:15


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0509 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.