<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>З.П.И. &#187; начинающие</title>
	<atom:link href="http://wiki.dodex.org/tag/%d0%bd%d0%b0%d1%87%d0%b8%d0%bd%d0%b0%d1%8e%d1%89%d0%b8%d0%b5/feed/" rel="self" type="application/rss+xml" />
	<link>http://wiki.dodex.org</link>
	<description>Что-то новое пришедшее в голову или интересное, найденное в интернете</description>
	<lastBuildDate>Tue, 08 Nov 2011 10:16:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Для начинающих программистов: Small Basic</title>
		<link>http://wiki.dodex.org/2008/11/26/%d0%b4%d0%bb%d1%8f-%d0%bd%d0%b0%d1%87%d0%b8%d0%bd%d0%b0%d1%8e%d1%89%d0%b8%d1%85-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b8%d1%81%d1%82%d0%be%d0%b2-small-basic/</link>
		<comments>http://wiki.dodex.org/2008/11/26/%d0%b4%d0%bb%d1%8f-%d0%bd%d0%b0%d1%87%d0%b8%d0%bd%d0%b0%d1%8e%d1%89%d0%b8%d1%85-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b8%d1%81%d1%82%d0%be%d0%b2-small-basic/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 21:24:15 +0000</pubDate>
		<dc:creator>gyunduz</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Small Basic]]></category>
		<category><![CDATA[начинающие]]></category>
		<category><![CDATA[программирование]]></category>

		<guid isPermaLink="false">http://wiki.dodex.org/?p=298</guid>
		<description><![CDATA[Microsoft создал программу для желающих научиться программированию &#8211; Small Basic. В данной программе используется Basic &#8211; как язык программирования. Здесь вы сможете более подробно ознакомиться с программой и посмотреть примеры кодов. Веб сайт, ЧАВО, блог, форум]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">
<div style="text-align: center;"><span style="line-height: 17px;"></p>
<div id="attachment_299" class="wp-caption aligncenter" style="width: 310px"><a href="http://wiki.dodex.org/wp-content/uploads/2008/11/smallbasic.jpg"><img class="size-medium wp-image-299" title="smallbasic" src="http://wiki.dodex.org/wp-content/uploads/2008/11/smallbasic.jpg" alt="Small Basic" width="300" height="195" /></a><p class="wp-caption-text">Small Basic</p></div>
<p></span></div>
<p>Microsoft создал программу для желающих научиться программированию &#8211; Small Basic. В данной программе используется Basic &#8211; как язык программирования.</p>
<p><a href="http://download.microsoft.com/download/9/0/6/90616372-C4BF-4628-BC82-BD709635220D/Introducing%20Small%20Basic.pdf" target="_blank">Здесь</a> вы сможете более подробно ознакомиться с программой и посмотреть примеры кодов.</p>
<p><a href="http://msdn.microsoft.com/en-us/devlabs/cc950524.aspx" target="_blank">Веб сайт</a>, <a href="http://msdn.microsoft.com/en-us/devlabs/cc950528.aspx" target="_blank">ЧАВО</a>, <a href="http://blogs.msdn.com/smallbasic/" target="_blank">блог</a>, <a href="http://social.msdn.microsoft.com/Forums/en-US/smallbasic/threads/" target="_blank">форум</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wiki.dodex.org/2008/11/26/%d0%b4%d0%bb%d1%8f-%d0%bd%d0%b0%d1%87%d0%b8%d0%bd%d0%b0%d1%8e%d1%89%d0%b8%d1%85-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b8%d1%81%d1%82%d0%be%d0%b2-small-basic/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JOIN в SQL</title>
		<link>http://wiki.dodex.org/2008/11/18/join-%d0%b2-sql/</link>
		<comments>http://wiki.dodex.org/2008/11/18/join-%d0%b2-sql/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 09:07:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[JOIN]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[начинающие]]></category>
		<category><![CDATA[объединение]]></category>

		<guid isPermaLink="false">http://wiki.dodex.org/?p=69</guid>
		<description><![CDATA[Статья для новичков, тех кто либо не использовал JOIN на практике, либо использовал, но по каким то причинам не совсем понял, как они работают. Было время, когда не пользовался ими, а обходился огромным WHERE, почему то считая, что так &#8220;круче&#8221; :) Итак, приступим. Представим, что у нас есть 2 таблицы: Таблица А слева, и Таблица [...]]]></description>
			<content:encoded><![CDATA[<p>Статья для новичков, тех кто либо не использовал JOIN на практике, либо использовал, но по каким то причинам не совсем понял, как они работают. Было время, когда не пользовался ими, а обходился огромным WHERE, почему то считая, что так &#8220;круче&#8221; :)</p>
<p><span id="more-69"></span></p>
<p>Итак, приступим. Представим, что у нас есть 2 таблицы: <strong>Таблица А</strong> слева, и <strong>Таблица Б</strong> справа. Заполним их какими нибудь данными:</p>
<pre>id name       id  name
-- ----       --  ----
1  <span style="color: red;">Pirate</span>     1   Rutabaga
2  Monkey     2   <span style="color: red;">Pirate</span>
3  <span style="color: red;">Ninja</span>      3   Darth Vader
4  Spaghetti  4   <span style="color: red;">Ninja
<span style="color: #000000;">(красным помечены "пересекающиеся" поля, т.е. одинаковые для обоих таблиц)

</span></span></pre>
<p>Итак, давайте соеденим эти таблицы различными путями, и посмотрим, что из этого выйдет.</p>
<p><strong>1. INNER JOIN</strong></p>
<p><a href="http://wiki.dodex.org/wp-content/uploads/2008/11/join-inner.png"><img class="size-medium wp-image-70 alignright" title="join-inner" src="http://wiki.dodex.org/wp-content/uploads/2008/11/join-inner-300x196.png" alt="" width="300" height="196" /></a></p>
<pre>SELECT * FROM TableA
<strong>INNER JOIN</strong> TableB
ON TableA.name = TableB.name

id  name       id   name
--  ----       --   ----
1   Pirate     2    Pirate
3   Ninja      4    Ninja</pre>
<p>Итак, как видно из результата запроса, <strong>inner join</strong> &#8211; это такое соединение таблиц, при котором, в результирующем наборе данных оказываются только те записи которые имеются как в первой, так и во второй таблице. Изображение показывает это наглядно.</p>
<p><strong>2.</strong> Следующий тип соединения &#8211; <strong>FULL OUTER JOIN<br />
</strong></p>
<pre>SELECT * FROM TableA
<a href="http://wiki.dodex.org/wp-content/uploads/2008/11/join-cartesian.png"><img class="alignright size-medium wp-image-72" title="join-cartesian" src="http://wiki.dodex.org/wp-content/uploads/2008/11/join-cartesian-300x196.png" alt="" width="300" height="196" /></a><strong>FULL OUTER JOIN</strong> TableB
ON TableA.name = TableB.name

id    name       id    name
--    ----       --    ----
1     Pirate     2     Pirate
2     Monkey     <span style="color: gray;">null</span>  <span style="color: gray;">null</span>
3     Ninja      4     Ninja
4     Spaghetti  <span style="color: gray;">null</span>  <span style="color: gray;">null</span>
<span style="color: gray;">null</span>  <span style="color: gray;">null</span>       1     Rutabaga
<span style="color: gray;">null</span>  <span style="color: gray;">null</span>       3     Darth Vader</pre>
<p>Результатом выполнения данного запроса будут записи, которые пересекаются как первой так и во второй таблице, ну а если нет соответствующей записи в одной из таблиц, то подставляется null.</p>
<p><strong>3. LEFT OUTER JOIN</strong> &#8211; такое объединение таблиц, при котором в результирующем  наборе данных окажутся все совпадающие записи из обеих таблиц, если же в правой таблице нужной записи не окажется, то будет подставлен null.</p>
<pre><a href="http://wiki.dodex.org/wp-content/uploads/2008/11/join-left.png"><img class="alignright size-medium wp-image-77" title="join-left" src="http://wiki.dodex.org/wp-content/uploads/2008/11/join-left-300x196.png" alt="" width="300" height="196" /></a></pre>
<pre>SELECT * FROM TableA
<strong>LEFT OUTER JOIN</strong> TableB
ON TableA.name = TableB.name

id  name       id    name
--  ----       --    ----
1   Pirate     2     Pirate
2   Monkey     <span style="color: gray;">null</span>  <span style="color: gray;">null</span>
3   Ninja      4     Ninja
4   Spaghetti  <span style="color: gray;">null</span>  <span style="color: gray;">null

</span></pre>
<p>Для получения записей которые есть в таблице А, но нет в таблице Б, мы сделаем тот же самый left outer join, но исключим записи из таблицы Б, путем добавления условия в WHERE.</p>
<pre><a href="http://wiki.dodex.org/wp-content/uploads/2008/11/join-left-outer.png"><img class="alignright size-medium wp-image-78" title="join-left-outer" src="http://wiki.dodex.org/wp-content/uploads/2008/11/join-left-outer-300x196.png" alt="" width="300" height="196" /></a></pre>
<pre>SELECT * FROM TableA
LEFT OUTER JOIN TableB
ON TableA.name = TableB.name
<strong>WHERE TableB.id IS null</strong>

id  name       id     name
--  ----       --     ----
2   Monkey     <span style="color: gray;">null</span>   <span style="color: gray;">null</span>
4   Spaghetti  <span style="color: gray;">null</span>   <span style="color: gray;">null

</span></pre>
<p>Если необходимо получить записи уникальные для таблиц А и Б, используем full outer join, и соответсвенно исключим из набора (спасибо WHERE) записи которые есть в обоих таблицах.</p>
<pre>SELECT * FROM TableA<a href="http://wiki.dodex.org/wp-content/uploads/2008/11/join-outer.png"><img class="alignright size-medium wp-image-80" title="join-outer" src="http://wiki.dodex.org/wp-content/uploads/2008/11/join-outer-300x196.png" alt="" width="300" height="196" /></a>
FULL OUTER JOIN TableB
ON TableA.name = TableB.name
<strong>WHERE TableA.id IS null
OR TableB.id IS null
</strong>
id    name       id    name
--    ----       --    ----
2     Monkey     <span style="color: gray;">null</span>  <span style="color: gray;">null</span>
4     Spaghetti  <span style="color: gray;">null</span>  <span style="color: gray;">null</span>
<span style="color: gray;">null</span>  <span style="color: gray;">null</span>       1     Rutabaga
<span style="color: gray;">null</span>  <span style="color: gray;">null</span>       3     Darth Vader</pre>
<p>Ну и под конец, хотелось бы рассказать о еще одном виде объединений:</p>
<p><strong>4. CROSS JOIN</strong> &#8211; согласно MSDN: возвращает перекрестное произведение двух или нескольких наборов.  Это так называемое декартово произведение, или, по простому: объединение всех записей одной таблицы со всеми записями другой. Т.е. если в одной таблице 4 записи, и во второй 4, то в результируещем наборе данных окажется 16 записей.</p>
<p>Надеюсь данный пост поможет лучше понять объединения таблиц в SQL.</p>
<p>Оригинал статьи можно найти по адресу:</p>
<p>http://www.codinghorror.com/blog/archives/000976.html</p>
<p>Если есть технические неточности, которые я вполне мог допустить, прошу указать на них, исправлю.</p>
]]></content:encoded>
			<wfw:commentRss>http://wiki.dodex.org/2008/11/18/join-%d0%b2-sql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

