ГЛАВНАЯ     АРХИВ     НАПИСАТЬ АДМИНУ     ПОДПИСАТЬСЯ НА RSS     ВОЙТИ      

Поиск

Категории

Облако тегов

  << Предыдущий пост       Следующий пост >>  
28. сентября 2012 21:16

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.

Похожие записи


Вопросы на собеседовании C#, Net, ASP.NET, SQL
Продолжая тему вопросов на собеседовании. Нашел еще одну подборку. Оригинал лежит здесь . Перенес, чтобы не затерялось. Есть вполне вменяемые ответы (хотя, на некоторые вопросы ответил бы по-другому). Ответы находятся после списка вопросов, я их не менял. 23. Что такое шаблон проектирования Model/View/Controller? Как и зачем его применяют? 2...

Способы заработка на сайте
На этом блоге было много постов про производство и раскрутку сайтов. Но пока не было про заработок на них. Пора исправить этот недочет. Здесь будут описаны по возможности не фантастичные, и не супер низко прибыльные способы. Также упор будет сделан именно на организацию процесса, а не технических деталях, которых в обилии в интернете. Несмотря на то, что как пр...

Silverlight, HTML5 и непрозрачная стратегия развития Microsoft
Оригинал статьи взят отсюда: Silverlight, HTML5 и непрозрачная стратегия развития Microsoft Автор: Peter Bright Переводчик: Mairon     По непонятным мне на данный момент причинам, похоже, что многие разработчики, присутствовавшие на недавней конференции PDC-2010 (Крупнейшая конференция Microsoft для разработчиков — Прим. переводчика), были сильн...

Добавить комментарий




biuquote
  • Комментарий
  • Предпросмотр
Loading


  Сохранить комментарий