Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите составить sql запрос на выборку из нескольких таблиц / 9 сообщений из 9, страница 1 из 1
18.02.2004, 13:58
    #32413569
Помогите составить sql запрос на выборку из нескольких таблиц
Привет,

есть 3 таблицы: persons (поля PersonID, Name), stories (StoryID, Caption) и rel-ps (PersonID, StoryID).

Таблица rel-ps отвечает за отношение многие-ко-многим между person и story.

Собственно, как составить запрос для данного PersonID (пусть в запросе это будет pid), чтобы в выборке получить:
pid, storyID, caption и bool
Где, storyID - все истории,
caption, соответственно их заголовки,
а bool - связана ли каждая история с данным pid.

Помогите, пожалуйста.
Спасибо
...
Рейтинг: 0 / 0
18.02.2004, 14:31
    #32413663
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить sql запрос на выборку из нескольких таблиц
Желательно читать правила http://sql.ru/forum/rules.aspx

ADP or MDB?
...
Рейтинг: 0 / 0
18.02.2004, 14:33
    #32413670
Помогите составить sql запрос на выборку из нескольких таблиц
MDB, я не могу составить условие на проверку наличия связи между PersonID и StoryID в таблице rel-ps.
...
Рейтинг: 0 / 0
18.02.2004, 14:38
    #32413681
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить sql запрос на выборку из нескольких таблиц
Для MDB не подскажу, т.к. не работаю с ним уже года 4.
Могу дать код на T-SQL

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
declare @pid int
set @pid= 1 

select @pid as pid, stories.StoryID, stories.Caption, 
	case
	when s.StoryID is null then 'Не связана'
	else 'Не связана'
	end as bool
from stories
left outer join (select StoryID from rel-ps where PersonID=@pid) s
on s.StoryID=stories.StoryID


Не проверял, но на первый взгляд должно работать
...
Рейтинг: 0 / 0
18.02.2004, 14:54
    #32413736
Erika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить sql запрос на выборку из нескольких таблиц
Может так (если вопрос поняла правильно)

Код: plaintext
1.
2.
3.
4.
SELECT persons.PersonID, stories.StoryID, stories.Caption, 
IIf( persons.PersonID Is Not Null,True,False) AS bool
FROM stories LEFT JOIN 
(persons RIGHT JOIN rel_ps ON persons.PersonID = rel_ps.PersonID) 
ON stories.StoryID = rel_ps.StoryID;
...
Рейтинг: 0 / 0
18.02.2004, 15:13
    #32413789
Помогите составить sql запрос на выборку из нескольких таблиц
2 incold:
не совсем понял как работает ваш запрос :( применить не получилось (знания sql очень поверхностны)

2 Erika:
мне необходимо получить список всех историй +булево поле, которое будет указывать, связана ли эта история с конкретным PersonID
...
Рейтинг: 0 / 0
18.02.2004, 15:22
    #32413809
Помогите составить sql запрос на выборку из нескольких таблиц
После долгих мучений, я родил вот такой запрос:
Код: plaintext
1.
2.
3.
4.
SELECT persons.Name, stories.StoryID, stories.Caption, persons.PersonID,
     (SELECT COUNT (*)  FROM [rel-ps] 
      WHERE ([rel-ps].StoryID=stories.StoryID) AND ([rel-ps].PersonID=pid) ) AS B
FROM stories, persons WHERE (((persons.PersonID)=pid));


Где pid -- интересующий меня PersonID

Есть подозрение, что он очень корявый :(
...
Рейтинг: 0 / 0
18.02.2004, 16:39
    #32414010
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить sql запрос на выборку из нескольких таблиц
Соловьев Максим ,
Да нет, нормальный запрос. Я б тоже так сделал.
...
Рейтинг: 0 / 0
18.02.2004, 22:11
    #32414467
(c)VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить sql запрос на выборку из нескольких таблиц
Код: plaintext
1.
2.
3.
SELECT t.*, IIf(IsNull(t1.PersonID), "False" , "True" ) AS Status
FROM [select *  from persons ,stories ]. AS t 
LEFT JOIN rel_ps AS t1 ON (t.PersonID=t1.PersonID) 
AND (t.StoryID=t1.StoryID);
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите составить sql запрос на выборку из нескольких таблиц / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]