Şimdi Ara

SQL Veritabanı Çoklu Tablo Sorgu Hakkında

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
5
Cevap
0
Favori
1.906
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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 ?







  • 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 >
  • 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
  • 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
  • Tesekkur Ederim
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.