| |
Mysql Union ile işlem yapmak (1 inceleyen) (1) Ziyaretçi
Beğenilen: 0
|
|
|
BAŞLIK: Mysql Union ile işlem yapmak
|
admin (Yönetici)
Yönetici
Gönderiler: 38
|
|
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. |
----------------------------------------------------
|
|
|
|
|
|
|
Son Düzenleme: 18/11/2008 00:01 tarafından admin.
|
|
|
Herkesin yazı yazması yönetici tarafından engellenmiştir.
|
|
| |
|
|
|
admin
|
05/10/2008 11:07
|
|
|
|
|