none
aynı anda 2 adet alt kaydın olduğu kayıtları sorgulama RRS feed

  • Soru

  • Merhaba;

    benim bir tablom var ve ona bağlı başka bir tablo

    1. tabloya kişi bilgileri 2. tabloya hizmet bilgileri kaydolmaktadır ve hizmet tablosuna kaydettiğim hizmetlerin arasında 4037 ve 4032 hizmet kodlarıyla hizmetler var

    ben bu iki hizmetlerin 2 sininde kaydedildiği kişileri bulmak istiyorum bunun için nasıl bir kod yazmalıyım

    1. tabloda her kişi kaydı için oluşturulmuş anahtar  alan mevcut ve bu anahtar alan 2. tabloya da hizmet eklenirken kayıt edilmektedir


    Powared by BİLGİÇ

    27 Ocak 2016 Çarşamba 13:32

Yanıtlar

  • select * from Kisiler k
    where exists 
    (select * from Hizmetler h where h.kisiId = k.kisiId and h.hizmetId = 4037)
    and exists 
    (select * from Hizmetler h where h.kisiId = k.kisiId and h.hizmetId = 4032);
    Soyledigin SQL server icin hic de kolay olmayan bir sorgu sekli, neyseki burada sadece 2 ID var ve yukaridaki sorgu kullanabileceklerinden "sadece birisi". Bunun disinda "... having count() = 2" tarzi cozumleri var.
    27 Ocak 2016 Çarşamba 16:24

Tüm Yanıtlar

  • SELECT kisiTablo.*, hizmetTablo.* FROM kisitablo INNER JOIN hizmetTablo ON kisiTablo.ID=hizmetTablo.kisiID şeklinde kişilere ait hizmetleri çekebilirsin.
    27 Ocak 2016 Çarşamba 13:57
  • T-SQL

    SELECT * FROM Hizmet h
    INNER JOIN Kisi k
    ON h.KisiId=k.KisiId
    WHERE h.HizmetId = 4037 OR h.HizmetId = 4032

    Linq :

    var people = context.Hizmets.Where(h=>h.HizmetId=4037 || h.HizmetId=4032).Select(s=>new{
    HizmetDetay=s.HizmetDetay,
    Kisiler=s.Kisis
    });


    -

    27 Ocak 2016 Çarşamba 14:01
  • tüm hizmetleri değil bahsi geçen 2 hizmetten ikisininde bulunduğu kişileri çekmek istiyorum 

    bazı kişilerde sadece biri olabiliyor


    Powared by BİLGİÇ

    27 Ocak 2016 Çarşamba 14:11
  • bu şekilde yaptığımızda  4037 veya 4032 kodlarından herhangi birinin olması yetiyor bana ikisininde olması durumunda veri getirmesini istiyorum

    Powared by BİLGİÇ

    27 Ocak 2016 Çarşamba 14:13
  • select * from Kisiler k
    where exists 
    (select * from Hizmetler h where h.kisiId = k.kisiId and h.hizmetId = 4037)
    and exists 
    (select * from Hizmetler h where h.kisiId = k.kisiId and h.hizmetId = 4032);
    Soyledigin SQL server icin hic de kolay olmayan bir sorgu sekli, neyseki burada sadece 2 ID var ve yukaridaki sorgu kullanabileceklerinden "sadece birisi". Bunun disinda "... having count() = 2" tarzi cozumleri var.
    27 Ocak 2016 Çarşamba 16:24