Auto1024x768800x600
Biz Yazarız
Hoşgeldiniz, Ziyaretçi
Lütfen Giriş ya da Kayıt.    Kayıp Parola?
Mysql Union ile işlem yapmak (1 inceleyen) (1) Ziyaretçi
EN ALT Cevapla Beğenilen: 0
BAŞLIK: Mysql Union ile işlem yapmak
#392
admin (Yönetici)
Yönetici
Gönderiler: 38
graphgraph
Şu An Sitede Kullanıcı bilgilerini görmek için tıklayın
Mysql Union ile işlem yapmak 1 Ay, 2 Hafta önce Başarı: 0  
Mysql'de UNION ile birden fazla sorgu sonuçlarını birleştirebilirsiniz.
Mysql'de birden çok işlemle elde edebileceğiniz sonuçları Union ile tek bir sorguda alabilirsiniz.

Aşağıdaki örnekte 3 tablomuz var

SELECT * FROM uyeler;

| isim | soyisim | adres |
----------------------------------------------------
| Ahmet | Demirbaş | Ahmet Demirbaşın Adresi. |
| Leyla | Durgun | Leyla Durgunun adresi. |
----------------------------------------------------

SELECT * FROM musteriler;
----------------------------------------------------
| soyisim | isim | adres |
+-----------+------------+-------------------------+
| Güvercin | Hamdi | Hamdi Güvercin Adresi. |
| Durgun | Leyla | Leyla Durgunun adresi.. |
| Bedir | Hakan | Hakan Bedir adresi. |
----------------------------------------------------

SELECT * FROM firmalar;
----------------------------------------------------
| firma | cadde |
----------------------------------------------------
| Işığıbol Ltd. | Işığıbol Cad. |
| Sormaal Ltd. | Sormageç Cad. |
----------------------------------------------------

Bu üç sorgu sonunda elde edilen sonuçları tek bir sorguda almak için UNION kullanarak aşağıdaki işlemi yapmanız yeterli.


SELECT isim, soyisim, adres FROM uyeler
UNION
SELECT soyisim, isim, adres FROM musteriler
UNION
SELECT firma, '', cadde FROM firmalar;

----------------------------------------------------
| isim | soyisim | adres |
----------------------------------------------------
| Ahmet | Demirbaş | Ahmet Demirbaşın Adresi. |
| Leyla | Durgun | Leyla Durgunun Adresi. |
| Hamdi | Güvercin | Hamdi Güvercin Adresi. |
| Hakan | Bedir | Hakan Bedir adresi. |
| Işığıbol Ltd. | | Işığıbol Cad. |
| Sormaal Ltd. | | Sormageç Cad. |
----------------------------------------------------


Gördüğünüz gibi 3 tabloda bulunan kayıtlar ekrana geldi. Sadece Leyla Durgun için bir kayıt var. Her iki tabloda da tekrarlandığı için ekrana getirilmedi. Bazı durumlarda tablolardan tüm kayıtların alınmasını isteyebiliriz. Bu durumda union kullanımı aşağıdaki gibi olmalıdır.


SELECT isim, soyisim, adres FROM uyeler
UNION ALL
SELECT soyisim, isim, adres FROM musteriler
UNION
SELECT firma, '', cadde FROM firmalar;

----------------------------------------------------
| isim | soyisim | adres |
----------------------------------------------------
| Ahmet | Demirbaş | Ahmet Demirbaşın Adresi. |
| Leyla | Durgun | Leyla Durgunun Adresi. |
| Hamdi | Güvercin | Hamdi Güvercin Adresi. |
| Leyla | Durgun | Leyla Durgunun Adresi. |
| Hakan | Bedir | Hakan Bedir adresi. |
| Işığıbol Ltd. | | Işığıbol Cad. |
| Sormaal Ltd. | | Sormageç Cad. |
----------------------------------------------------

ALL anahtarı sorgudaki ilk UNION komutunun hemen ardından yer almalıdır.

UNION komutunun ardından gelen her sorgu sıralanabilir, koşullu sorgu yapılabilir.

Örnek aşağıda:

SELECT isim, soyisim, adres FROM uyeler
UNION ALL
SELECT soyisim, isim, adres FROM musteriler where isim != '' order by soyisim ASC
UNION
SELECT firma, '', cadde FROM firmalar;

----------------------------------------------------
| isim | soyisim | adres |
----------------------------------------------------
| Ahmet | Demirbaş | Ahmet Demirbaşın Adresi. |
| Leyla | Durgun | Leyla Durgunun Adresi. |
| Hakan | Bedir | Hakan Bedir adresi. |
| Leyla | Durgun | Leyla Durgunun Adresi. |
| Hamdi | Güvercin | Hamdi Güvercin Adresi. |
| Işığıbol Ltd. | | Işığıbol Cad. |
| Sormaal Ltd. | | Sormageç Cad. |
----------------------------------------------------

Eğer genel sonucu sıralamak isterseniz dikkat etmeniz gereken şey ilk sorguda yer alan alanları kullanmanız gerektiğidir.

Örneği İnceleyin:

(SELECT isim, soyisim, adres FROM uyeler
UNION ALL
SELECT soyisim, isim, adres FROM musteriler
UNION
SELECT firma, '', cadde FROM firmalar)
where isim != '' order by soyisim ASC

----------------------------------------------------
| isim | soyisim | adres |
----------------------------------------------------
| Işığıbol Ltd. | | Işığıbol Cad. |
| Sormaal Ltd. | | Sormageç Cad. |
| Hakan | Bedir | Hakan Bedir adresi. |
| Ahmet | Demirbaş | Ahmet Demirbaşın Adresi. |
| Leyla | Durgun | Leyla Durgunun Adresi. |
| Leyla | Durgun | Leyla Durgunun Adresi. |
| Hamdi | Güvercin | Hamdi Güvercin Adresi. |
----------------------------------------------------
 
Yetkiliye Raporla   Kayıt Tutuldu Kayıt Tutuldu  
 
Son Düzenleme: 18/11/2008 00:01 tarafından admin.
  Herkesin yazı yazması yönetici tarafından engellenmiştir.
      Başlık Yazar Tarih
    thread link
Mysql Union ile işlem yapmak
admin 05/10/2008 11:07
EN ÜST Cevapla
Sistem: FireBoardGönderileri Masaüstünüze Alın