Arama butonu
Bu konudaki kullanıcılar: 1 misafir
4
Cevap
2057
Tıklama
0
Öne Çıkarma
SQL Veritabanı Çoklu Tablo Sorgu Hakkında
E
13 yıl (163 mesaj)
Teğmen
Konu Sahibi

Merhaba;

MSSQL (2008 R2 Express) Veritabanında İstediğim Bir Sorguyu Yazamıyorum.

Senaryo : Elimde 3 Adet Tablo Var. Bu Tablolardaki Kolonları Kullanarak Bir Liste Çıkartmak İstiyorum

Personel Tablosu
-------------------
id, ad, soyad { Örn 1, Ahmet, Soda - 2, Mehmet, Kola }

Departman Tablosu
----------------------
id, ad { Örn 1, Satış - 2, Arge }

Match Tablosu
-----------------
departman_id, personel_id, gorev_tanimi { Örn 1, 1, Yönetici }

Match Tablosundaki;
departman_id -> departman.id'ye,
personel_id -> personel.id'ye foreign key ile bağlı

Yazmak İstediğim Sorgu Sonucunda >> | Personel Adı | Personel Soyadı | Çalıştığı Departman | Görev Tanımı | << Şeklinde Bir Çıktı Almak İstiyorum.

Bunu Normalde Yapabiliyorum. Match Tablosundaki Kayıtları Where'de Departman.Id & Personel.Id'ye Eşitleyerek.
Yukarıdaki Veriler İle

Ahmet | Soda | Satış | Yönetici| Çıktısını Alabiliyorum

Asıl Sorunum, Match Tablosunda Olmayan Personeller Doğal Olarak Gözükmüyor.
Misal Yukarıdaki Duruma Göre Mehmet Kola İsimli Arkadaş'ın Tanımlı Departmanı Olmadığı İçin Bu Sorguda Çıkmıyor.

Nasil Bir Sorgu Yazmalıyım Ki

| Personel Adı | Personel Soyadı | Çalıştığı Departman | Görev Tanımı |
----------------------------------------------------------------------------------
| Ahmet | Soda | Satış | Yönetici |
| Mehmet | Kola | Belirtilmedi | Belirtilmedi |

Şeklinde Bir Çıktı Alabileyim ?



L
13 yıl (14 mesaj)
Er

when case komutu ile yapabilirsin. örneklere bak kolaydır kullanımı





< Bu mesaj bu kişi tarafından değiştirildi Loft Yazılım -- 18 Nisan 2013; 8:13:54 >
Bu mesaja 1 cevap geldi.
B
13 yıl (17 mesaj)
Er

Hocam merhaba,

Su query isinizi gorur

SELECT p.ad, p.soyad, d.ad, m.gorev_tanimi
FROM Personel p
LEFT JOIN Match m
ON p.id = m.personel_id
LEFT JOIN Departman d
ON d.id = m.departman_id


Bu mesaja 1 cevap geldi.
J
13 yıl (952 mesaj)
Onbaşı

SELECT personel.id,personel.ad,personel.soyad, departman.id,departman.ad,match.departman_id,match.personel_id,match.gorev_tanimi FROM personel,departman,match WHERE personel.id = match.personel_id AND match.departman_id = departman.id

bu kod ile yapabilirsin


Bu mesaja 1 cevap geldi.
E
13 yıl (163 mesaj)
Teğmen
Konu Sahibi

Tesekkur Ederim



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.