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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> скажите возникает ошибка 1242 
:(
    Опции темы
supervladislav
Дата 23.2.2012, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

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



Скажите  в чём может быть ошибка ?
пишет  1242
код SQL
1:
Код

SELECT *,(select `numbers` from tbllist where  oid in  (select `RecordID` from tblOffices where Owner=owners.id)) as numbers FROM owners WHERE holder=1;

        




#1242 - Subquery returns

Это сообщение отредактировал(а) supervladislav - 23.2.2012, 21:36
PM MAIL   Вверх
Akina
Дата 23.2.2012, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


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

Репутация: 106
Всего: 454



Цитата

Error: 1242 SQLSTATE: 21000 (ER_SUBQUERY_NO_1_ROW) 
Message: Subquery returns more than 1 row 

Подзапрос
Код

(select `numbers` from tbllist where  oid in  (select `RecordID` from tblOffices where Owner=owners.id))

возвращает более 1 записи, потому не может быть занесён в поле записи.

Но сам тест запроса что-то слишком кривой...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
supervladislav
Дата 24.2.2012, 01:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

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



Akina, ой точно точно ,забыл а как его в поле записи как-то через In можно было занести

Добавлено через 9 минут и 52 секунды
Akina, странно слазял в документацию посмотрел там вроде такая конструкция допустима.

Код

where  oid in  (select `RecordID` from tblOffices where Owner=owners.id)

 smile 
PM MAIL   Вверх
supervladislav
Дата 24.2.2012, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

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



Но тут то никаких проблем не может быть так как тут поле из самого первого запроса 
Код

where Owner=owners.id


Это сообщение отредактировал(а) supervladislav - 24.2.2012, 01:55
PM MAIL   Вверх
supervladislav
Дата 24.2.2012, 02:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

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



Скажите , я перерыл весь интернет и ничего про код данной ошибки не нашёл.
Что код ошибки то значит.


Это сообщение отредактировал(а) supervladislav - 24.2.2012, 04:04
PM MAIL   Вверх
Akina
Дата 24.2.2012, 07:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


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

Репутация: 106
Всего: 454



supervladislav, будьте любезны прочитать мой постинг ПОЛНОСТЬЮ. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 24.2.2012, 10:20 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


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

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



supervladislav, 
1)перечитайте коментраии Akina
2)выполните запрос
Код

SELECT *,(select count(*) from tbllist where  oid in  (select `RecordID` from tblOffices where Owner=owners.id)) as count_of_numbers FROM owners WHERE holder=1
and 1<(select count(*) from tbllist where  oid in  (select `RecordID` from tblOffices where Owner=owners.id));

3)подумайте над результатом в контексте сказанного Akina



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


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


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(supervladislav @  24.2.2012,  03:48 Найти цитируемый пост)
Скажите , я перерыл весь интернет и ничего про код данной ошибки не нашёл.

Странно: я вот сразу нашёл в гугле.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
supervladislav
Дата 24.2.2012, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

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



Данкинг, слишком много информации мягко говоря не нужной ,я нашёл через гугль нигде нет списков ошибок sql.
PM MAIL   Вверх
Akina
Дата 24.2.2012, 15:21 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


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

Репутация: 106
Всего: 454



Цитата(supervladislav @  24.2.2012,  16:13 Найти цитируемый пост)
через гугль нигде нет списков ошибок sql

Ты бы ещё на РБК их искал  smile 
http://dev.mysql.com/doc/refman/5.5/en/ - запиши фломастером на руке.
Коды ошибок - это аппендикс Цэ (оглавление - справа).


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Данкинг
Дата 24.2.2012, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



supervladislav, "sql Ошибка 1242" в гугле набираешь - и сразу выводится масса статей по поводу этой ошибки.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
supervladislav
Дата 24.2.2012, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

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



Zloxa, Akina,Могли бы вы пояснить логику второго запроса?
Код

and 1<(select count(*) from tbllist where  oid in  (select `RecordID` from tblOffices where Owner=owners.id));

PM MAIL   Вверх
supervladislav
Дата 24.2.2012, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

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



Akina,я не понял , что вы мне хотите сказать , но я попытаюсь угадать ,надо ограничить  запросы по лимитно. 
PM MAIL   Вверх
Akina
Дата 24.2.2012, 18:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


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

Репутация: 106
Всего: 454



Цитата(supervladislav @  24.2.2012,  19:53 Найти цитируемый пост)
 я попытаюсь угадать ,надо ограничить  запросы по лимитно.  

Не угадал.
Надо выложить структуру хранения данных и объяснить, какая задача решается. Потому что запрос построен скорее всего не по уму.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
supervladislav
Дата 25.2.2012, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

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



Akina, мне нужно одним обычным и двумя вложенными запросами получить информацию из таблиц .

в базе rooms_office  хранится статистика   о сдаваемых помещениях где oid  индификатор позиции (тоесть в базе может быть несколько одинаковых oid)
первая часть запроса считает их колличество 

Второй запрос и вложенный в него запрос нужен для того чтобы определить id собственника это можно посмотреть по базе где находиться информация  об владельце ,но для того чтобы получить эту информацию нужно узнать id карточки владельца 
вот собственно говоря мы так и делаем 
Код

select `office` from rooms_office where id=statuschanges.oid limit 1

после этого мы узнаём id владельца введя введя номер карточки в следующий запрос
Код

select `owner_holder` from offices where card=


Мне в переменную valu2 возвращается null , значило ли это то ,что вложеный запрос не выполняется   


Код

SELECT distinct oid, count(*) as value,object,(select `owner_holder` from offices where card=(select `office` from rooms_office where id=statuschanges.oid limit 1) limit 1) as valu2  FROM statuschanges GROUP BY oid;

запрос очень  долго выполняется минуты 4 бне работал до селе  с вложенными запросами можно как-то повлиять на время выполнения.



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


 




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


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

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