Назад
Создание прибыльного бизнеспроекта на базе сайта

SEO + ASP.NET 4.0 + БИЗНЕСМОДЕЛЬ = ПРИБЫЛЬНЫЙ САЙТ

Инструмент быстрого построения прибыльного онлайн бизнеса своими силами без капиталовложений за 4 месяца все подробности на SEO + ASP.NET 4.0.

Подписка на рассылку

МАГИЯ C#!

Создание вебсайта с формой автоматического приема онлайн платежей по WebMoney!
Ваше имя
Ваш e-mail
Уроки по ASP.NET c# ADO.NET
     

18 видеоуроков
более 5 часов
по созданию сайта,
выполняющего
продажи ваших продуктов (физических/электронных) на полном автомате с личным оповещением на e-mail, а также ...
DVD-курс по C#, .NET

3 часть. Введение в ASP.NET. WebServices Профессиональная подготовка разработчика по языку C# на платформе .NET

asp.net webservices dvd c# gridview Гудок курс Более 65 подробных видео уроков по теоретическим основам технологии сайтостроения ASP.NET и процессу создания и использованию вебсервисов.

DVD-курс по C#, .NET

2А часть. XML/TXT в аспекте ADO.NET Профессиональная подготовка разработчика по языку C# на платформе .NET

xml txt dvd c# ADO ADO.NET Гудок курс 70 подробных видео уроков по работе с форматами xml, txt, по работе с файлами и директориями. Разработка высокоорганизованных свойств для значительного сокращения объема исходного кода и облегчения дальнейшей модификации и многое-многое другое...

DVD-курс по C#, .NET

1 часть. Windows Forms Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок

185 подробнейших уроков (70 часов) лекций в формате видеоуроков по теории языка c# и платформы .NET. Практическое закрепление теоретического материала на примере создания Windows Forms - приложения видеоигры "Tanks"

DVD-курс по C#, .NET

2 часть. ADO.NET/SQL Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок ADO.NET sql

165 подробных видео уроков по созданию приложений распределенных баз данных на примере разработки проектов с использований технологий ADO.NET (Connected model, Disconnected model, Typed DataSet, ...)


Я записываю курсы!
  Курс валют

НБУ курс евро






Left Join on - выборка по левому внешнему соединению (SQL Server)



В данной статье мы разберем конструкцию Left Join как более верную альтернативу вложенных запросов и увидим, что объединение (Join) вовсе не сложнее для понимания вложенных запросов к таблицам БД SQL Server.

Итак, имеем БД некоторого заведения. В здании имеются офисы и за каждой уборщицей закреплен определенный набор офисных помещений для уборки.

Тривиальная структура БД может выглядеть так:

Left Join SQL таблиц

Имеется таблица Scrubwoman и зависимая от неё таблица Room. Соответственно, эти таблицы заполнены тестовыми данными.

Теперь выберем из БД тех уборщиц, за которыми не закреплено ни одного офисного помещения:

SELECT *
	FROM Scrubwoman 
		WHERE NOT EXISTS
		(SELECT Room.Scrubwoman_id FROM Room
			WHERE Scrubwoman.scrub_id=Room.Scrubwoman_id)

Или с использованием псевдонимов для таблиц

SELECT *
    FROM Scrubwoman AS Sс
        WHERE NOT EXISTS
        (SELECT Ro.Scrubwoman_id FROM Room AS Ro 
            WHERE Sс.scrub_id=Ro.Scrubwoman_id)

Одним из таких запросов мы получим результат:

вложенный запрос sql

Но этого можно добиться более элегантным путем – с помощью левого соединения:

SELECT * 
	FROM Scrubwoman AS Sc 
		LEFT JOIN Room AS Ro 
			ON Sc.scrub_id=Ro.Scrubwoman_id
	WHERE Ro.Scrubwoman_id is NULL;

Соответственно, результат аналогичный:

левое внешнее соединение

Получилось так, что мы выбрали все поля таблицы уборщиц, для которых нет записей в дочерней таблице комнат. Соответственно, поля дочерней таблицы принимают значение null, поскольку соответствующей дочерней записи нет.

Если же мы хотим получить уборщиц, для которых назначены хотя бы по одной комнате, то в условия выборки просто следует добавить оператор NOT:

SELECT * 
	FROM Scrubwoman AS Sc 
		LEFT JOIN Room AS Ro 
			ON Sc.scrub_id=Ro.Scrubwoman_id
	WHERE Ro.Scrubwoman_id is NOT NULL;

Но, что б легче было понять систему работы Left Join, поиграйте с простейшим запросом:

SELECT * 
    FROM Scrubwoman AS Sc 
        LEFT JOIN Room AS Ro 
            ON Sc.scrub_id=Ro.Scrubwoman_id

левое внешнее соединение sql

Как видите, мы выбрали все строки из левой таблицы и дополнили их данными из полей дочерней таблицы. Если же дочерней записи не оказывается, то в соответствующих полях значение устанавливается в null. Одним словом, конструкция Left Join объединяет таблицы по правилу равнения на левую таблицу.



Больше информации читайте по теме:



Оценить статью:

Оценивая статью, Вы подсказываете нам насколько данная информация стала полезной именно для Вас. Мы ожидаем, прежде всего, оценку доступности материала для понимания и простоты его изложения. Дополнительные комментари, вопросы, дополнения и замечания Вы можете указать на странице От Вас

Частичное, или полное копирование материала данной статьи возможно лишь при размещении ссылки на данную страницу.


            
        


        Иван Игнатьевич    26.09.2010 0:59:21
        

Александр, как то трудновато написано. Это ж не ваш стиль! И что-то давно вы уже не добавляете статьи? Надеюсь у вас все хорошо? Или может вы нам еще готовите курсы?


        Саша Гудок    06.10.2010 15:12:01
        

Да, я сейчас очень занят, статьи скоро опять появятся. Присылайте ваши пожелания по поводу тем для публикации.




Имя:  


Текст комментариев (не больше 600 знаков):  
введите не более 600 знаков



Введите символы с картинки:
Капча имеет "срок годности". Поэтому, если необходимо обновите страницу.



Сантехник срочно
c# курс Гудок   курс по ASP.NET Гудок   курс по ADO.NET Гудок   курс по XML txt Гудок   курс по рефлексии и многопоточности Гудок