﻿
{"id":7739,"date":"2018-04-22T10:08:32","date_gmt":"2018-04-22T10:08:32","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=7739"},"modified":"2018-04-22T10:08:32","modified_gmt":"2018-04-22T10:08:32","slug":"t-sqlde-not-in-fonksiyonu-ile-tablolar-arasindaki-verisel-farki-bulma","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/t-sqlde-not-in-fonksiyonu-ile-tablolar-arasindaki-verisel-farki-bulma\/","title":{"rendered":"T-SQL&#8217;de Not In Fonksiyonu \u0130le Tablolar Aras\u0131ndaki Verisel Fark\u0131 Bulma"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>SQL Server&#8217;da birbirlerinden farkl\u0131 ya da benzer, aralar\u0131n mant\u0131ksal ya da fiziksel ili\u015fki bulunan iki tablonun verileri aras\u0131nda k\u0131yaslama yapmak isteyebilir ve bu k\u0131yaslama neticesinde bir tabloda olup di\u011ferinde olmayan sat\u0131rlar\u0131 elde etmemiz gerekebilir. \u0130\u015fte b\u00f6yle bir ihtiyaca istinaden &#8220;Not In&#8221; fonksiyonu ile \u00e7al\u0131\u015fmam\u0131z\u0131 ger\u00e7ekle\u015ftirebilir, iki tabloda ortak de\u011ferler bar\u0131nd\u0131ran(ki ili\u015fkiyi sa\u011flayanda olabilir) kolonlar aras\u0131nda kontrol sa\u011flan\u0131p bir tabloda olup di\u011ferinde olmayan sat\u0131rlar\u0131 tespit ederek, sonu\u00e7 olarak iki tablo aras\u0131ndaki verisel fark\u0131 yeni bir tablo olarak elde edebiliriz.<\/p>\n<p>Not In fonksiyonu genellikle a\u015fa\u011f\u0131daki mant\u0131kta sorulan sorulara teknik boyutta uygun bir i\u015flevsellik bar\u0131nd\u0131rmaktad\u0131r;<\/p>\n<ul>\n<li>Hangi m\u00fc\u015fteri bizimle hi\u00e7 i\u015flem yapmad\u0131?<\/li>\n<li>Son g\u00fcnlerde sat\u0131lmayan \u00fcr\u00fcnler hangileri?<\/li>\n<li>Sat\u0131\u015f yapmayan personeller hangisi?<\/li>\n<\/ul>\n<p>vs.<br \/>\nBuradan yola \u00e7\u0131karak Not In fonksiyonunu, genellikle olumsuz atmosferleri sorgulad\u0131\u011f\u0131m\u0131z durumlarda kullan\u0131lan bir fonksiyondur \u015feklinde haf\u0131zan\u0131zda anlamland\u0131rabilirsiniz lakin bu durum anlamsal a\u00e7\u0131dan olumlu verisel farklar\u0131 gerektiren durumlarda da tercih etmeyece\u011fiz anlam\u0131na gelmemektedir.<\/p>\n<p>A\u015fa\u011f\u0131daki prototipte Not In fonksiyonunun kullan\u0131m\u0131n\u0131 yap\u0131sal olarak inceleyebilirsiniz.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nSELECT * FROM Tablo1\r\nWHERE X NOT IN\r\n\t\t\t(\r\n\t\t\t\tSELECT X FROM Tablo2\r\n\t\t\t)\r\n<\/pre>\n<p>Yukar\u0131daki prototipe g\u00f6z att\u0131\u011f\u0131m\u0131zda &#8220;Tablo1&#8243;deki ve &#8220;Tablo2&#8243;deki &#8220;X&#8221; isimli kolonlar k\u0131yaslanmakta ve bu kolonlara istinaden &#8220;Tablo1&#8243;de olup &#8220;Tablo2&#8243;de olmayan veriler tablo halinde bizlere sunulmaktad\u0131r.<\/p>\n<p>Hemen i\u00e7eri\u011fimizi bir \u00f6rnekle zengile\u015ftirirsek e\u011fer;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nCREATE TABLE PersonelBilgileri\r\n(\r\n\tPersonelId INT PRIMARY KEY IDENTITY(1,1),\r\n\tAdi NVARCHAR(MAX),\r\n\tSoyAdi NVARCHAR(MAX)\r\n)\r\nGO\r\nCREATE TABLE PersonelSatislari\r\n(\r\n\tSatisId INT PRIMARY KEY IDENTITY(1,1),\r\n\tPersonelId INT,\r\n\tCONSTRAINT FK_PersonelSatislari FOREIGN KEY (PersonelId) REFERENCES PersonelBilgileri(PersonelId) ON DELETE CASCADE,\r\n\tUrun NVARCHAR(MAX)\r\n)\r\nGO\r\nINSERT PersonelBilgileri VALUES('Gen\u00e7ay', 'Y\u0131ld\u0131z'),\r\n\t\t\t\t\t\t\t   ('Nevin', 'Y\u0131lmaz'),\r\n\t\t\t\t\t\t\t   ('Mehmet', 'Asl\u0131bay'),\r\n\t\t\t\t\t\t\t   ('G\u00fcrol', 'Y\u0131ld\u0131z'),\r\n\t\t\t\t\t\t\t   ('Mustafa', 'G\u00fcrhan')\r\nGO\r\nINSERT PersonelSatislari VALUES(1, 'Kalem'), (3, 'Silgi'),\r\n\t\t\t\t\t\t\t   (5, 'Defter'), (1, 'Ka\u011f\u0131t'),\r\n\t\t\t\t\t\t\t   (3, 'Boya'), (1, 'Kalem Tra\u015f'),\r\n\t\t\t\t\t\t\t   (1, 'Tahta Kalemi'), (1, 'Kalemlik'),\r\n\t\t\t\t\t\t\t   (1, 'Beslenme \u00c7antas\u0131'), (3, '\u00c7anta'),\r\n\t\t\t\t\t\t\t   (1, 'Pastel Boya'), (5, 'A4'),\r\n\t\t\t\t\t\t\t   (5, 'Sabun'), (1, '\u00d6nl\u00fck')\r\n<\/pre>\n<p>&#8220;PersonelBilgileri&#8221; ve &#8220;PersonelSatislari&#8221; isminde iki adet tablo olu\u015ftural\u0131m ve i\u00e7lerine yukar\u0131da oldu\u011fu gibi az \u00e7ok verilerimizi girelim.<\/p>\n<p>Her iki tablomuzun i\u00e7eri\u011fine bakt\u0131\u011f\u0131m\u0131z zaman g\u00f6rsel olarak a\u015fa\u011f\u0131daki gibi verisel fark\u0131 g\u00f6rebilmekteyiz.<\/p>\n<p><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/04\/T-SQLde-Not-In-Fonksiyonu-\u0130le-Tablolar-Aras\u0131ndaki-Verisel-Fark\u0131-Bulma.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/04\/T-SQLde-Not-In-Fonksiyonu-\u0130le-Tablolar-Aras\u0131ndaki-Verisel-Fark\u0131-Bulma.png\" alt=\"T-SQL&#039;de Not In Fonksiyonu \u0130le Tablolar Aras\u0131ndaki Verisel Fark\u0131 Bulma\" width=\"434\" height=\"292\" class=\"aligncenter size-full wp-image-7753\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/04\/T-SQLde-Not-In-Fonksiyonu-\u0130le-Tablolar-Aras\u0131ndaki-Verisel-Fark\u0131-Bulma.png 434w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/04\/T-SQLde-Not-In-Fonksiyonu-\u0130le-Tablolar-Aras\u0131ndaki-Verisel-Fark\u0131-Bulma-300x202.png 300w\" sizes=\"auto, (max-width: 434px) 100vw, 434px\" \/><\/a><\/p>\n<p>Buradan da anla\u015f\u0131l\u0131yor ki; &#8220;PersonelBilgileri&#8221; tablosunda &#8220;2&#8221; ve &#8220;4&#8221; idlerine sahip veriler varken &#8220;PersonelSatislari&#8221; tablosunda bu veriler bulunmamaktad\u0131r. Yani aradaki fark g\u00f6rm\u00fc\u015f oldu\u011funuz bu iki veridir.<\/p>\n<p>Not In fonksiyonuyla fark\u0131 ortaya koyarsak e\u011fer;<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/04\/T-SQLde-Not-In-Fonksiyonu-\u0130le-Tablolar-Aras\u0131ndaki-Verisel-Fark\u0131-Bulma-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/04\/T-SQLde-Not-In-Fonksiyonu-\u0130le-Tablolar-Aras\u0131ndaki-Verisel-Fark\u0131-Bulma-1.png\" alt=\"T-SQL&#039;de Not In Fonksiyonu \u0130le Tablolar Aras\u0131ndaki Verisel Fark\u0131 Bulma\" width=\"448\" height=\"181\" class=\"aligncenter size-full wp-image-7757\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/04\/T-SQLde-Not-In-Fonksiyonu-\u0130le-Tablolar-Aras\u0131ndaki-Verisel-Fark\u0131-Bulma-1.png 448w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/04\/T-SQLde-Not-In-Fonksiyonu-\u0130le-Tablolar-Aras\u0131ndaki-Verisel-Fark\u0131-Bulma-1-300x121.png 300w\" sizes=\"auto, (max-width: 448px) 100vw, 448px\" \/><\/a><br \/>\n\u015feklinde fark\u0131 elde edece\u011fiz.<\/p>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz \u00fczere gayet g\u00fczel ve kullan\u0131\u015fl\u0131 olan Not In fonksiyonu ile SQL sorgular\u0131nda farkl\u0131 tablolar aras\u0131ndaki verisel ili\u015fkilerden ba\u011f\u0131nt\u0131lar olu\u015fturabilir ve kompleks raporlama algoritmalar\u0131na pratik desteklerde bulunabilirsiniz.<\/p>\n<p>Sonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, SQL Server&#8217;da birbirlerinden farkl\u0131 ya da benzer, aralar\u0131n mant\u0131ksal ya da fiziksel ili\u015fki bulunan iki tablonun verileri aras\u0131nda k\u0131yaslama yapmak isteyebilir ve bu k\u0131yaslama neticesinde bir tabloda olup di\u011ferinde olmayan sat\u0131rlar\u0131 elde etmemiz&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":3415,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1082],"tags":[2288,2283,2287,2286,245,2284,2285],"class_list":["post-7739","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sql-server","tag-iki-tablo-arasindaki-veri-farkini-bulma","tag-not-in","tag-sql-iki-tablo-arasindaki-veri-farki","tag-sql-not-in-iki-tablo-arasindaki-farki-bulma","tag-sql-server","tag-sql-server-not-in","tag-t-sql-not-in"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/7739","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=7739"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/7739\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/3415"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=7739"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=7739"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=7739"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}