Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Запрос на выборку нулевых и ненулевых значений из нескольких таблиц  [new]
Rwety
Member

Откуда:
Сообщений: 37
есть две таблицы table1 и table2 и table3
table1
id_user | id_info | user_info
1 1 222-222-222
1 2 Москва
1 3 e-maill@mail.ru
null null 333-333-333
2 2 Питер
2 3 e-maill2@mail.ru
3 null телефон

table2
id_info | info
1 info1
2 info2
3 info13
4 info11
5 info12
6 info14

table3
id_user | user
1 user1
2 user2
3 user13
4 user11
5 user12
6 user14

Эти таблицы связаны по колонкам id_info и id_user
Нужно сделать запрос так, чтоб в результате получилось

user | info | user_info
user1 info1 222-222-222
user1 info2 Москва
user1 info3 e-maill@mail.ru
null null 333-333-333
.
.
.
user3 null телефон

Проблема вся в том, что если в запросе использовать JOIN то выбираются только значения, которые не равны null, а нужно их вывести. Как правильно построить запрос?
28 дек 09, 16:50    [8128343]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку нулевых и ненулевых значений из нескольких таблиц  [new]
Konst_One
Member

Откуда:
Сообщений: 11513
left join
28 дек 09, 16:54    [8128383]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку нулевых и ненулевых значений из нескольких таблиц  [new]
_djХомяГ
Guest
или subquery
28 дек 09, 16:57    [8128407]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку нулевых и ненулевых значений из нескольких таблиц  [new]
Rwety
Member

Откуда:
Сообщений: 37
left join не помог

пример на использование подзапроса в моем случае можно? если использовать условие на null то выбирутся только или пустые значения или непустые
28 дек 09, 17:12    [8128514]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку нулевых и ненулевых значений из нескольких таблиц  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
начало хорошее :)
Rwety
есть две таблицы table1 и table2 и table3
28 дек 09, 17:16    [8128556]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку нулевых и ненулевых значений из нескольких таблиц  [new]
jekaSQL
Member

Откуда: Бабруйск
Сообщений: 596
автор
есть две таблицы table1 и table2 и table3
:)

А как именно вам не помог left join? Пример покАжите?
28 дек 09, 17:17    [8128559]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку нулевых и ненулевых значений из нескольких таблиц  [new]
Konst_One
Member

Откуда:
Сообщений: 11513
SELECT     Table_1.id_user, Table_1.id_info, Table_1.user_info, Table_3.[user], Table_2.info
FROM         Table_1 LEFT OUTER JOIN
                      Table_3 ON Table_1.id_user = Table_3.id_user LEFT OUTER JOIN
                      Table_2 ON Table_1.id_info = Table_2.id_info
28 дек 09, 17:19    [8128583]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку нулевых и ненулевых значений из нескольких таблиц  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
jekaSQL
автор
есть две таблицы table1 и table2 и table3
:)

А как именно вам не помог left join? Пример покАжите?

видимо также как и 2 таблицы =)
пятница затягиваецца!
28 дек 09, 17:20    [8128599]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку нулевых и ненулевых значений из нескольких таблиц  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
а показали бы свой left join
он такой?
select * from table1 t1  
left join table2 t2 on t1.info=t2.info
28 дек 09, 17:21    [8128600]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку нулевых и ненулевых значений из нескольких таблиц  [new]
Rwety
Member

Откуда:
Сообщений: 37
jekaSQL,

DECLARE @Group nVarChar (10) = 'Name';

DECLARE  @IDGroup int = (SELECT IDGroup FROM Groupa WHERE GroupName = @Group)

	SELECT    myTable.ID
				 , Groupa.GroupName 
				 , Subject.Abbreviation 
				 , Teacher.FIO
	                        , EventType.EventType 
	                        , myTable.Status
	                        , myTable.ClassRoom 
	FROM            myTable LEFT JOIN
				 Groupa ON Groupa.IDGroup = myTable.IDGroup INNER JOIN
	                         Teacher ON Teacher.IDTeacher = myTable.IDTeacher INNER JOIN
	                         Subject ON Subject.IDSubject = myTable.IDSubject INNER JOIN
	                         EventTipe ON EventTipe.IDEventType = myTable.IDEventType
	WHERE        myTable.IDGroup = @IDGroup

вот такой запрос у меня. myTable.IDGroup, myTable.IDTeacher, myTable.IDSubject, myTable.IDEventType могут быть пустыми. LEFT JOIN не помог. выводит тоже самое что и просто join, без null значений
28 дек 09, 17:32    [8128685]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку нулевых и ненулевых значений из нескольких таблиц  [new]
Konst_One
Member

Откуда:
Сообщений: 11513
INNER JOIN
у вас будет для всех связей
28 дек 09, 17:33    [8128696]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку нулевых и ненулевых значений из нескольких таблиц  [new]
O_val
Member

Откуда:
Сообщений: 157
все джойны д.б. left видимо
28 дек 09, 17:35    [8128709]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку нулевых и ненулевых значений из нескольких таблиц  [new]
jekaSQL
Member

Откуда: Бабруйск
Сообщений: 596
WHERE        myTable.IDGroup = @IDGroup 
вот, что вас губит. по дефолту NULL = NULL = False
28 дек 09, 17:38    [8128730]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку нулевых и ненулевых значений из нескольких таблиц  [new]
jekaSQL
Member

Откуда: Бабруйск
Сообщений: 596
Konst_One
INNER JOIN
у вас будет для всех связей


нет конечно, почему вы так решили?
28 дек 09, 17:39    [8128738]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку нулевых и ненулевых значений из нескольких таблиц  [new]
Rwety
Member

Откуда:
Сообщений: 37
jekaSQL,

всетаки да. для всех нужно поставить Left Join
28 дек 09, 17:47    [8128777]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку нулевых и ненулевых значений из нескольких таблиц  [new]
jekaSQL
Member

Откуда: Бабруйск
Сообщений: 596
да, чёт я невнимательно прочитал...
только раз и myTable.IDGroup может быть пустое, то условие во where ничего хорошего не даст
28 дек 09, 17:51    [8128810]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку нулевых и ненулевых значений из нескольких таблиц  [new]
Rwety
Member

Откуда:
Сообщений: 37
jekaSQL,

ну это можно исправить, чтоб было не пустое
28 дек 09, 17:53    [8128825]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить