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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ошибка при выборке, результат повторяеться неколько раз 
V
    Опции темы
AsyncCallback
Дата 1.3.2010, 05:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Опишусь подробнее
есть 2 таблице
book и author 
с полями
book(id,name,author_id)
author(id,name)
id везде PK
id_author связанн с id book
так вот при запросе вида 
Код

SELECT * FROM book,author WHERE author_id=1

коичество результатов стока скока записеу в author
а запрос вида

Код

SELECT * FROM book,author WHERE author_id=1 AND book.author_id=author.id

возрашает правильный результат
так вот вопрос у меня второй запрос правильный или просто где то ошибка в связях или проктирования?
P.S. когда составлял вопрос думал что первый правильный!


Это сообщение отредактировал(а) AsyncCallback - 1.3.2010, 05:56
PM MAIL   Вверх
Deniz
Дата 1.3.2010, 06:58 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 6
Всего: 44



Цитата(AsyncCallback @  1.3.2010,  07:55 Найти цитируемый пост)
так вот вопрос у меня второй запрос правильный или просто где то ошибка в связях или проктирования?
С точки зрения правильности SQL оба запроса правильные, с точки зрения логики: 1 запрос делает декартово произведение двух таблиц (у книги будут все авторы), во 2-ом запросе указан ключ соединения двух таблиц "book.author_id=author.id" и он выдает правильный результат.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
AsyncCallback
Дата 1.3.2010, 07:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Deniz @  1.3.2010,  06:58 Найти цитируемый пост)
1 запрос делает декартово произведение двух таблиц (у книги будут все авторы)

странно както!
Ладно значит второй запрос можно использовать!

PM MAIL   Вверх
Deniz
Дата 1.3.2010, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 6
Всего: 44



Цитата(AsyncCallback @  1.3.2010,  09:52 Найти цитируемый пост)
странно както!
Ладно значит второй запрос можно использовать!
А что странного?
Читайте что-нибудь по базам данных.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
AsyncCallback
Дата 1.3.2010, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Deniz @  1.3.2010,  08:27 Найти цитируемый пост)
Читайте что-нибудь по базам данных.

Читаю, просто то что, читал, такой случай не был описан! 
P.S. можно ли маленькое объяснение этому?
Цитата(Deniz @  1.3.2010,  06:58 Найти цитируемый пост)
1 запрос делает декартово произведение двух таблиц (у книги будут все авторы)


PM MAIL   Вверх
Deniz
Дата 1.3.2010, 09:09 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 6
Всего: 44



Цитата(AsyncCallback @  1.3.2010,  10:40 Найти цитируемый пост)
P.S. можно ли маленькое объяснение этому?
а что объяснять?
Каждой записи из 1 таблицы будет поставлена каждая запись 2 таблицы.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
AsyncCallback
Дата 1.3.2010, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Deniz @  1.3.2010,  09:09 Найти цитируемый пост)
Каждой записи из 1 таблицы будет поставлена каждая запись 2 таблицы.

О и точно, он же по всем строкам проходится второй таблице и все их выдвет=)

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


 




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


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

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