Programlamadili.Net Yeni Nesil Programlama Portali
Makale Ara: 
Kullanıcı Adı : Şifre :
  • Makale Kategorileri
Anasayfa
ACPI [0]
Action Script [5]
Ajax [7]
ASP [12]
ASP.NET [23]
Assembly [3]
Bash [1]
C [4]
C# [9]
C++ [10]
Cobol [1]
Delphi [31]
Flash [5]
Html [9]
JAVA [36]
Java Script [12]
JSF [2]
Jsp [6]
Lua [1]
Matlab [2]
MySQL [30]
Oracle [1]
Pascal [31]
Perl [4]
Photoshop [2]
PHP [154]
Python [8]
REXX [6]
Ruby [1]
SEO [5]
Visual Basic [37]
  • Gorsel Ders Kategorileri
Asp [25]
Asp.Net [5]
Csharp [33]
Delphi [3]
Fireworks [4]
Flash [10]
Java Script [0]
Photoshop [0]
PHP [55]
Vb.Net [9]
Visual Basic [4]
  • Dil
English
Deutsch
deutsch
  • Reklam Alani
MySQL / MySQL ile Subselect Islemini Join kullanarak Yapmak
MySQL ile Subselect Islemini Join kullanarak Yapmak
Yazar: FERDIKUCUK
Eklenme: 26/02/08    Okunma: 160    
 
 

MySQL:  

 Kod Çizelgesi     Kod Dili: php
# Subselect_IN.sql 
 # Normal bir Subselect Sorgusu: 
 # SELECT * FROM t1 WHERE col1 IN (SELECT col2 FROM t2); 
 # Yukaridaki sorguyu "join" islemi ile t1.col1 
 # ve t2.col2 kolanlari icin arasinda yeniden 
 # yazalim: 
 DROP TABLE IF EXISTS t1; 
 DROP TABLE IF EXISTS t2; 
 CREATE TABLE t1 
 ( 
 col1 CHAR(10) 
 ); 
 CREATE TABLE t2 
 ( 
 col2 CHAR(10) 
 ); 
 INSERT INTO t1 (col1) VALUES('a'),('b'),('c'); 
 INSERT INTO t2 (col2) VALUES('b'),('c'),('d'); 
 # Tablolarin iceriklerini goruntule, 
 SELECT * FROM t1; #Cikti 1 
 SELECT * FROM t2; #Cikti 2 

# "join" islemi uygulanarak "subselect" ile ayni
# neticeler aliniyor...
SELECT t1.* FROM t1, t2 WHERE t1.col1 = t2.col2; #Cikti 3Bu islemlerin ciktisi asagidaki gibidir:
ÇIKTI:  

 Kod Çizelgesi     Kod Dili: php

 b 
 c

ÇIKTI:  

 Kod Çizelgesi     Kod Dili: php
 b
 c
 d

ÇIKTI:  

 Kod Çizelgesi     Kod Dili: php
 b 
 c


Yukaridaki ciktilardan neyi basarmak istedigimizi herhalde daha net anlamissinizdir...

Baska bir ornek vermek istersek:

Normalde bu tip islemler ile ornegin iki tablo arasindaki veriler birbiri ile alakali oldugunda
bunlari cekip alabiliyoruz.Mesela "yazar" tablosunda "K_ID" (Kayit ID) alaninda birinci tabloda "1"
degeri olsun.Bu "K_ID" ile her yazara otomatik bir numara veriyoruz.Tum yazarlari bu numara ile
birbirinden ayirt ediyor olalim.

Bu durumda yukarida anlatilan "join" islemi icin kullanilacak ve ikinci tabloda ("yazilar"
tablosunda) yazinin yazarini belirlemek icin kullanilan bir anahtar "Y_ID" (Yazar ID) olsun.Bu
durumda yazilar tablosundaki bu alan da ornegin 4 adet "1" varsa bu demektir ki ("yazar"
tablosundan alinan) "1" numarali yazarin "yazilar" tablosunda 4 adet kayidi bulunmaktadir.

Bu durumda "yazar" tablosundan alinan "1" degeri, ikinci tablomuz olan "yazilar" icinde "Y_ID"
bolumunde sorgulandiginda karsimiza tam istedigimiz sonuclar gelmis oluyor.

Simdi de her iki tabloyi da sorgulayip birinin icinde olup da (sorgu icinde solda kullandigimiz
tablo icinde olup da, sorgu icinde sag tarafta kullandigimiz tablo icinde olmayan) degerleri
bulmaya calisalim.

Bu tip sorgulara "Left Join" yani "Sol'dan Katilim" denilmesinin sebebi de budur.Bu sorgu
tekniginin birde "Right Join" yani "Sag'dan Katilim" olani vardir.

Sozu fazla uzatmadan ornek sorgumuza bakalim :


 Kod Çizelgesi     Kod Dili: php
MySQL: # Subselect_NOT_IN.sql 
 # Subselect Sorgusu olsa asagidaki gibi olacakti: 
 # SELECT * FROM t1 WHERE col1 NOT IN (SELECT col2 FROM t2); 
 # Yukaridaki sorguyu LEFT JOIN kullanacak sekilde 
 # t1.col1 ve t2.col2 arasinda yeniden yazmaya 
 # calisalim: 
 DROP TABLE IF EXISTS t1; 
 DROP TABLE IF EXISTS t2; 
 CREATE TABLE t1 
 ( 
 col1 CHAR(10) 
 ); 
 CREATE TABLE t2 
 ( 
 col2 CHAR(10) 
 ); 
 INSERT INTO t1 (col1) VALUES('a'),('b'),('c'); 
 INSERT INTO t2 (col2) VALUES('b'),('c'),('d'); 

# Tablo iceriklerini goster,

 Kod Çizelgesi     Kod Dili: php
SELECT * FROM t1; #Cikti1 
 SELECT * FROM t2; #Cikti2 
 # Left Join islemini kullanarak sonuca bakalim, 
 SELECT t1.* FROM t1 LEFT JOIN t2 ON t1.col1 = t2.col2 
 WHERE t2.col2 IS NULL; 

# Basarili bir LEFT JOIN islemi t2.col2 alaninda
# herhangi bir NULL degerin olmamasini
# gerektirmektedir.Eger t2.col2 bir NULL deger
# tasiyorsa bu durumda o satira karsilik gelecek
# t1.col1 icindeki degerde secilecektir ki bu
# yanlis bir sonuctur...
ÇIKTI:  

 Kod Çizelgesi     Kod Dili: php
 a 
 b 
 c

ÇIKTI:  

 Kod Çizelgesi     Kod Dili: php
 b
 c
 d


ÇIKTI:  

 Kod Çizelgesi     Kod Dili: php
 a


 



Taglar: Bir Yazi dosyasindan TXT tabloya veri aktarmak Kendi Admin Panelimden Phpmyadmin Yedegi Nasil Alirim Mysql baglantisi kurmak Mysql BetweenAnd Isleci Mysql Database Uzerinde Stored Procedure Kullanimi MySQL Delete Veritabanindaki Bilgiyi Silmek mysql dersleri Mysql DROP Deyimi MySQL icin Acik Kalma Suresi MySQL ile Matris Olusturmak MySQL ile Subselect Islemini Join kullanarak Yapmak Mysql INNER JOIN Islemi MySQL InsertInsert Into - Veri Eklemek Mysql Like Isleci Mysql ORDER BY Yan Tumcesi Mysql Sum Islevi MySQL Tablosunda Kolon icin Veri Tipini Degistirme Mysql UNION Islemi Mysql UPDATE Deyimi MySQL Veritabanini Yedeklemek MySQL Veritabanina Baglanma Mysql ye kaydedilen bilgilerin nasil ciktisini ali MYSQLde PHP Kullanarak Veri Silme mysql_real_escape_string komutu php MySQL Full-text Arama

Isminiz:
E-mail adresiniz:
Güvenlik Kodu:
  
 

 

Istatistikler ,
Sitemizde su anda 31 kategori, 458 makale , 148 görsel ders ve 1944 Ziyaretci bulunmaktadir...
Toplam üye sayimiz : 1118

Web Stats

Copyright © 2007 Programlamadili.net - Programlama & Tasarim: Recep Ikiz & Ferdi Küçük

| Site Haritasi |

"Ne Aradığını Bilmeyen Bulduğunun Farkına Varamaz "
ACPI Programlama dili, Action Script Programlama dili, Ajax Programlama dili, ASP Programlama dili, ASP.NET Programlama dili, Assembly Programlama dili, Bash Programlama dili, C Programlama dili, C# Programlama dili, C++ Programlama dili, Cobol Programlama dili, Delphi Programlama dili, Flash Programlama dili, Html Programlama dili, JAVA Programlama dili, Java Script Programlama dili, JSF Programlama dili, Jsp Programlama dili, Lua Programlama dili, Matlab Programlama dili, MySQL Programlama dili, Oracle Programlama dili, Pascal Programlama dili, Perl Programlama dili, Photoshop Programlama dili, PHP Programlama dili, Python Programlama dili, REXX Programlama dili, Ruby Programlama dili, SEO Programlama dili, Visual Basic Programlama dili,
Reklam alanı