powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Помогите с Inner Join в связке с несколькими таблицами
1 сообщений из 1, страница 1 из 1
Помогите с Inner Join в связке с несколькими таблицами
    #37373828
Ребята есть 4 таблицы из которых нужно собрать необходимые данные для пользователя под неким именем

структура таблиц следуйщая :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
CREATE TABLE CodeReviewRecord
([Id] INTEGER PRIMARY KEY,[Title] nvarchar( 50 ) not null,[Description] nvarchar( 255 ) null,
[SeverityId] int not null,[StatusId] int not null,[OwnerId] int not null,
[AssignedId] int not null,[CreatedDate] datetime not null,
[EditorId] int not null,[ChangeDate] datetime not null,[Resolution] text null);

CREATE TABLE Status
([StatusId] int not null primary key,[StatusName] nvarchar( 30 ) not null);

INSERT INTO [Status] VALUES( 1 ,'Active');
INSERT INTO [Status] VALUES( 2 ,'Failed');
INSERT INTO [Status] VALUES( 3 ,'Fixed');
INSERT INTO [Status] VALUES( 4 ,'Closed');
INSERT INTO [Status] VALUES( 5 ,'Skipped');

CREATE TABLE CodeReviewRecordHistory
([Id] INTEGER PRIMARY KEY,
[CRRId] int not null,[EditorId] int not null,[ChangeDate] datetime not null,[StatusId] int not null,
[Resolution] text null,[SeverityId] int not null);

CREATE TABLE Users
([UserId] INTEGER PRIMARY KEY,[UserName] nvarchar( 60 ) not null,[Password] nvarchar( 50 ) not null,
[ReviewerId] int not null,[LastLoginTime] datetime null,[Role] nvarchar( 50 ) null,
[CreatedDate] datetime null,[SharepointId] nvarchar( 255 ) not null);

Мне надо по определенному (статусу имени и дате ) из таблиц Status , Users,CodeReviewRecordHistory взять данные с таблицы CodeReviewRecord!
насколько корректен будет запрос следуйщего вида(на параметры для даты не обращайте внимание, исп. в ADO.NET):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT CodeReviewRecord.Id,CodeReviewRecord.Title,CodeReviewRecord.Description,CodeReviewRecord.SeverityId,
CodeReviewRecord.StatusId,CodeReviewRecord.OwnerId,CodeReviewRecord.AssignedId,CodeReviewRecord.CreatedDate,
CodeReviewRecordHistory.EditorId,CodeReviewRecordHistory.ChangeDate,CodeReviewRecord.Resolution
FROM CodeReviewRecord INNER JOIN Status On CodeReviewRecord.StatusId=Status.StatusId
INNER JOIN Users ON CodeReviewRecord.OwnerId=Users.UserId AND Users.UserName='Tmp user'
INNER JOIN CodeReviewRecordHistory On CodeReviewRecord.Id= CodeReviewRecordHistory.CRRId
AND CodeReviewRecordHistory.ChangeDate BETWEEN @p1 and @p2
WHERE Status.StatusName='Skipped'  
???

Перед этим выполнял инной запрос но он вобще не работал, вернее выдавал не то что надо..

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT CodeReviewRecord.Id,CodeReviewRecord.Title,CodeReviewRecord.Description,CodeReviewRecord.SeverityId,
CodeReviewRecord.StatusId,CodeReviewRecord.OwnerId,CodeReviewRecord.AssignedId,CodeReviewRecord.CreatedDate,
CodeReviewRecordHistory.EditorId,CodeReviewRecordHistory.ChangeDate,CodeReviewRecord.Resolution
FROM CodeReviewRecord INNER JOIN Status On CodeReviewRecord.StatusId=Status.StatusId
INNER JOIN Users ON CodeReviewRecord.OwnerId=Users.UserId
INNER JOIN CodeReviewRecordHistory On CodeReviewRecord.Id= CodeReviewRecordHistory.CRRId
WHERE Status.StatusName='Skipped'  AND Users.UserName='Tmp user'
AND CodeReviewRecordHistory.ChangeDate BETWEEN @p1 and @p2
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Помогите с Inner Join в связке с несколькими таблицами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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