MySQL UNION – Eğitimi Tamamla
Birlik nedir?
Birlikler, birden fazla SELECT sorgusunun sonuçlarını birleştirilmiş bir sonuç kümesinde birleştirir.
Bunun çalışması için gereken tek gereksinim, birleştirilmesi gereken tüm SELECT sorgularındaki sütun sayısının aynı olmasıdır.
Diyelim ki aşağıdaki gibi iki tablomuz var
Şimdi her iki tabloyu DISTINCT kullanarak birleştirmek için bir UNION sorgusu oluşturalım
SELECT column1, column2 FROM `table1` UNION DISTINCT SELECT column1,column2 FROM `table2`;
Burada yinelenen satırlar kaldırılır ve yalnızca benzersiz satırlar döndürülür.
Not: MySQL Hiçbir şey belirtilmemişse UNION sorguları yürütülürken DISTINCT yan tümcesini varsayılan olarak kullanır.
Şimdi ALL kullanarak her iki tabloyu birleştirmek için bir UNION sorgusu oluşturalım.
SELECT `column1`,` column1` FROM `table1` UNION ALL SELECT ` column1`,` column1` FROM `table2`;
Burada yinelenen satırlar dahil edilmiştir ve ALL kullandığımızdan beri.
Birlikleri neden kullanmalı?
Diyelim ki veritabanı tasarımınızda bir hata var ve aynı amaç için kullanılan iki farklı tablo kullanıyorsunuz. Bu iki tabloyu, yinelenen kayıtları da hariç tutarak tek bir tabloda birleştirmek istiyorsunuz.ping Yeni tabloya aktarın. Bu gibi durumlarda UNION kullanabilirsiniz.
ÖZET
- UNION komutu, birden fazla SELECT sorgusu sonucunu, tüm seçme sorgularından satırlar içeren tek bir sorguda birleştirmek için kullanılır.
- Sütun sayısı ve veri türleri SELECT ifadeleri UNION komutunun çalışması için aynı olması gerekir.
- DISTINCT yan tümcesi, UNION sorgu sonuç kümesindeki yinelenen değerleri ortadan kaldırmak için kullanılır. MySQL Hiçbir şey belirtilmemişse UNION sorguları yürütülürken DISTINCT yan tümcesini varsayılan olarak kullanır.
- ALL yan tümcesi, UNION sorgusunda yinelenen tüm satırları bile döndürmek için kullanılır.
Kullanarak pratik örnekler MySQL tezgâh
myFlixDB'mizde birleştirelim
Üyeler tablosundaki üyelik_numarası ve tam_adlar
'da
movie_id ve film tablosundan başlık
Aşağıdaki sorguyu kullanabiliriz
SELECT `membership_number`,`full_names` FROM `members` UNION SELECT `movie_id`,`title` FROM `movies`;
Yukarıdaki betiğin çalıştırılması MySQL tezgâh myflixdb'ye karşı yaptığımız karşılaştırma bize aşağıda gösterilen sonuçları veriyor.
| membership_number | full_names |
|---|---|
| 1 | Janet Jones |
| 2 | Janet Smith Jones |
| 3 | Robert Phil |
| 4 | Gloria Williams |
| 5 | Leonard Hofstadter |
| 6 | Sheldon Cooper |
| 7 | Rajesh Koothrappali |
| 8 | Leslie Winkle |
| 9 | Howard Wolowitz |
| 16 | 67% Guilty |
| 6 | Angels and Demons |
| 4 | Code Name Black |
| 5 | Daddy's Little Girls |
| 7 | Davinci Code |
| 2 | Forgetting Sarah Marshal |
| 9 | Honey mooners |
| 19 | movie 3 |
| 1 | Pirates of the Caribean 4 |
| 18 | sample movie |
| 17 | The Great Dictator |
| 3 | X-Men |




