Giris

$mesaj

Üye Adi Sifre
| Üye ol

Online Sayisi : 34 Toplam Üye Sayisi : 1581 Son Üye : OrhanKızılkan

Tarih 2008:Nov:Fri

Kategoriler
  • ACPI [0]

  • Action Script [5]

  • Ajax [7]

  • ASP [17]

  • ASP.NET [23]

  • Assembly [3]

  • Bash [1]

  • C [6]

  • C# [9]

  • C++ [12]

  • Cobol [1]

  • Css [20]

  • Delphi [31]

  • Flash [5]

  • Html [9]

  • JAVA [36]

  • Java Script [17]

  • JSF [2]

  • Jsp [6]

  • Lua [1]

  • Matlab [2]

  • MySQL [31]

  • Oracle [1]

  • Pascal [31]

  • Pear [3]

  • Perl [22]

  • Photoshop [2]

  • PHP [169]

  • Python [9]

  • REXX [6]

  • Ruby [4]

  • SEO [5]

  • Visual Basic [37]

  • MySQL / MySQL ile Subselect Islemini Join kullanarak Yapmak
    MySQL ile Subselect Islemini Join kullanarak Yapmak
    Yazar: FERDIKUCUK
    Eklenme: 26/02/08    Okunma: 358    
     
     

    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


     



    Bu Kategoriye Ait Diğer Makaleler
    Başlık Tarih Hit
    Triggers 2008-10-4 22:53:45 0
    MySQL Insert(Insert Into - Veri Eklemek) 13/06/08 1014
    MySQL Delete (Veritabanındaki Bilgiyi Silmek) 13/06/08 420
    MySQL Veritabanına Bağlanma 13/06/08 517
    Mysql bağlantısı kurmak 13/06/08 357
    Mysql Database Üzerinde Stored Procedure Kullanımı 17/04/08 825
    php MySQL Full-text Arama 16/03/08 608
    Mysql DROP Deyimi 10/03/08 325
    PROCEDURE Yan Tümcesi 10/03/08 370
    mysql_real_escape_string komutu 10/03/08 539
    Kendi Admin Panelimden Phpmyadmin Yedeği Nasıl Alırım 07/03/08 327
    Mysql Between...And İşleci 07/03/08 391
    Mysql ORDER BY Yan Tümcesi 07/03/08 402
    Mysql INNER JOIN İşlemi 07/03/08 1010
    Mysql Like İşleci 07/03/08 414
    Mysql Sum İşlevi 07/03/08 460
    MYSQL'de PHP Kullanarak Veri Silme 07/03/08 471
    Mysql UNION İşlemi 07/03/08 639
    Mysql UPDATE Deyimi 07/03/08 590
    RESMİ DATABASEYE KAYDETME 07/03/08 544
    Mysql ye kaydedilen bilgilerin nasıl çıktısını alı 03/03/08 315
    mysql dersleri 03/03/08 950
    MySQL icin Acik Kalma Suresi 26/02/08 250
    MySQL Tablosunda Kolon icin Veri Tipini Degistirme 26/02/08 309
    MySQL ile Subselect Islemini Join kullanarak Yapmak 26/02/08 359

    Misafir - 2008-08-05 14:52:56
    tşk


    electro71 - 2008-08-10 01:00:02
    tşk


    Misafir - 2008-08-07 19:42:32
    tşkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

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

     

    Görsel Dersler
  • Asp [59]

  • Asp.Net [5]

  • Csharp [33]

  • Delphi [85]

  • Delphi 7 [0]

  • Dreamweaver [45]

  • DW ile ASP Uygulamaları [28]

  • English Lessons [52]

  • Fireworks [4]

  • Flash [16]

  • HTML [20]

  • Java Script [0]

  • MS Access [19]

  • MS FrontPage [11]

  • Photoshop [32]

  • PHP [99]

  • Python [3]

  • SolidWorks [25]

  • Think Design [26]

  • VB Script [32]

  • Vb.Net [37]

  • Visual Basic [4]

  • iletisim    Reklam Verin Kadromuz Tavsiye Edin Site Haritasi Etiketler

    Sesli Chat beceri oyunlari

    Sitenizi Ekleyin.

    Sitemize Hosgeldiniz Sitemiz Genç Nesil Programlama Kaynak Sitesi Olup Siz Degerli Misafirlerimize Yararlanmaniz Amaci Ile Kurulmustur.



     

    Her hakki saklidir 2008 Tema : Pd - Ramazan
    Ferdi KÜÇÜK Web Stats webmaster forumu