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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выборка из 2х таблиц, начинаю изучать SQL 
V
    Опции темы
DissDoc
Дата 22.11.2008, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Есть две таблички
topics
id  subject
и posts
topic_id message

В таблице posts данные такие
1 message_1
1 message_2
2 message_3

В таблице topics
1 subj1
2 subj2

Составляю запрос 
Код

select t.subject, p.message from topics as t, posts as p;

В резулттате получаю
Код

subj1 message1
subj2 message1
subj1 message2
subj2 message2
subj1 message3
subj2 message3


А нужен
Код

subj1 message1
subj1 message2
subj2 message3

Как мне получить этот запрос?
PM MAIL WWW   Вверх
skyboy
Дата 23.11.2008, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

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



Цитата(DissDoc @  22.11.2008,  21:00 Найти цитируемый пост)
Как мне получить этот запрос? 

когда ты указываешь 
Цитата(DissDoc @  22.11.2008,  21:00 Найти цитируемый пост)
select t.subject, p.message from topics as t, posts as p;

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

select t.subject, p.message 
from topics as t, posts as p
where t.id = p.topic_id

впрочем, лично я бы тебе советовал перейти от неявной формы соединения - нескольких таблиц в секции from, к явному соединению. читаемее будет:
Код

select t.subject, p.message 
from topics as t
inner join posts as p
on t.id = p.topic_id

PM MAIL   Вверх
DissDoc
Дата 23.11.2008, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Мда...
Буду смотреть литературу по inner, join и on 
Столько информации сразу...
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




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


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

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