Сегодня 14 ноября, четверг ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7276
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
coding4.net
coding4.net
Голосов: 1
Адрес блога: http://www.coding4.net/
Добавлен: 2012-06-11 20:16:46
 

Вопросы на собеседовании по TSQL (про JOIN-ы)

2012-09-28 21:16:00 (читать в оригинале)


ms sql server

Это задание было на собеседовании у одного из моих знакомых. На листочке написано содержимое двух таблиц (Т1 и Т2) и несколько запросов. Нужно написать (тоже на бумажке), что вернут эти запросы.
Таблицы:

 T1:
 Id    Value

 1     STR11
 2     STR12
 3     STR13

 T2:
 Id    Value

 1     STR21
 3     STR23
 4     STR24

Запросы:

1. SELECT * FROM [T1] LEFT JOIN [T2] ON T1.Id = T2.Id

2. SELECT * FROM [T1] RIGHT JOIN [T2] ON T1.Id = T2.Id

3. SELECT * FROM [T1] INNER JOIN [T2] ON T1.Id = T2.Id

4. SELECT * FROM [T1] FULL JOIN [T2] ON T1.Id = T2.Id

5. SELECT * FROM [T1] LEFT JOIN [T2] ON T1.Id = T2.Id AND T2.Id > 1

6. SELECT * FROM [T1] LEFT JOIN [T2] ON T1.Id = T2.Id WHERE T2.Id > 1

7. SELECT * FROM [T1] WHERE T1.Id IN (SELECT Id FROM T2)

8. SELECT * FROM [T1] WHERE T1.Id = (SELECT Id FROM T2)

А теперь запросы с ответами (тем, что вернул SQL Server, проверялось в Management Studio):

1. SELECT * FROM [T1] LEFT JOIN [T2] ON T1.Id = T2.Id

    Id    Value    Id     Value

    1     STR11    1     STR21

    2     STR12    NULL    NULL

    3     STR13    3     STR23

2. SELECT * FROM [T1] RIGHT JOIN [T2] ON T1.Id = T2.Id

    Id     Value    Id    Value

    1     STR11    1     STR21

    3     STR13    3     STR23

    NULL    NULL     4     STR24

3. SELECT * FROM [T1] INNER JOIN [T2] ON T1.Id = T2.Id

    Id    Value    Id    Value

    1     STR11    1     STR21

    3     STR13    3     STR23

4. SELECT * FROM [T1] FULL JOIN [T2] ON T1.Id = T2.Id

    Id     Value    Id     Value

    1     STR11    1     STR21

    2     STR12    NULL    NULL

    3     STR13    3     STR23

    NULL    NULL     4     STR24

5. SELECT * FROM [T1] LEFT JOIN [T2] ON T1.Id = T2.Id AND T2.Id > 1

    1    STR11    NULL    NULL

    2    STR12    NULL    NULL

    3    STR13    3     STR23

6. SELECT * FROM [T1] LEFT JOIN [T2] ON T1.Id = T2.Id WHERE T2.Id > 1

    Id    Value    Id    Value

    3     STR13    3     STR23

7. SELECT * FROM [T1] WHERE T1.Id IN (SELECT Id FROM T2)

    1    STR11

    3    STR13

8. SELECT * FROM [T1] WHERE T1.Id = (SELECT Id FROM T2)

Msg 512, Level 16, State 1, Line 23 Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.


Тэги: tsql, вопрос, собеседование

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по количеству голосов (152) в категории «Истории»


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.