Şimdi Ara

farklı satırlardan veri alma

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
5
Cevap
0
Favori
512
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • öncelikle mevcut sistemimden bahsetmek gerekirse
    liste:
    ______id_____|_____ad_____|_______soyad______|
    ______1______|___hasan____|_______yılmaz______|
    ______2______|___hasan____|_______soylu_______|

    şeklindeki verileri SELECT id, ( ad + ' ' + soyad) AS tamAd FROM liste
    komutu ile alıp combobox'a value olarak id değerini, gösterim elemanı olarak da tam adı yazdırabiliyorum.
    ancak yukardaki örnekte görüldüğü gibi isimler yada soyadlar tekrarlandıklarında yine alan işgal ediyorlar, bunu önlemek için de isim ve soyadları ayrı bir tabloda sınıflandırmak istiyorum
    karakterler:
    ______id______|__karakterler_|
    ______1______|____hasan____|
    ______2______|___yılmaz____|
    ______3_____|_____soylu_____|

    yeni liste:
    ______id_____|_____ad_____|____soyad______|
    ______1______|______1____|_______2_______|
    ______2______|______1____|_______3_______|

    şekline gelecek ancak bu noktada nasıl bir sorgu ile yukardaki sorguyla aynı işlem yapılabilir bilmiyorum.
    paylaşanlara şimdiden teşekkürler







  • Bir türlü tam olarak hatırlayamadım, bir kaç ay ilgilenmeyince hemen unutmuşum. Şuna benzer bir şekilde yapılacağını biliyorum ama bir türlü olması gereken doğru kodu yazamadım.

    Burada 3 tane tablon olduğunu düşünüyoruz. Yeniliste tablosunu zaten en etkin şekilde kullanacaksınız buna sorgunun içinde A takma ismini veriyoruz.
    isimlerin yazılı olduğu tablo : bu tablonun adı isimler takma ismi ise B
    soyisimlerin yazılı olduğu tablo : bu tablonun adı soyisimler takma ismi ise C

    WHERE bölümünde sorgumuzdan gelecek rakamların isimler tablosundaki hangi isme karşılık geleceğini belirtiyoruz.
    Dediğim gibi bu sorgu doğru değil ancak buna benzer bir şekilde yapılması lazım.

    Birde iç içe sorgular yazma tekniği var ama o burada kullanılmaz galiba. Kafam karman çorman oldu, belki daha sonra tekrar ilgilenmeliyim.





    SELECT A.id, B.ad , C. soyad

    FROM yeniliste A, isimler B, soyisimler C

    WHERE A.ad=B.id AND A.soyad=C.id




  • bahsettiğiniz kodlarda ad ve soyadın farklı tablolarda olduğu varsayılmış ama ben ad ve soyadın aynı tablo altında saklanmasının daha faydalı olacağını düşünüyorum, ad ve soyadın aynı tablodaki haliyle yol gösterebilirseniz sevinirim.
  • Tamam yapmak istediğinizi daha iyi anladım. Kod yine buna benzeyecek ama bu işi bilen bir arkadaş baksa daha iyi olur.


    Çünkü benim yaptığım yanlış, yanlış olduğunu iyibiliyorum ama doğrusunu yazabilecek kadar hatırlayamıyorum şu an.


    Yukarıdakini birden çok tabloyla çalışmanın mantığı gibi düşünebilirsiniz, doğrusunu şu an yazamadığım için çok saçma şeyler çıkıyor ortaya.

    Birde bu var.

    SELECT A.id, (SELECT karakter FROM karakterler B WHERE A.ad=B.id) As ADI , (SELECT karakter FROM karakterler B WHERE A.soyad=B.id) As SOYADI
    FROM yeniliste A


    Galiba bu şekilde olacak, bu sefer kalınla işaretlediğim yerlerde ad ve soyadı ayrı ayrı belirttiğim için daha mantıklı gözüktü gözüme.



    < Bu mesaj bu kişi tarafından değiştirildi MaviAteş -- 23 Eylül 2007; 16:35:36 >
  • mevcut yapıdaki tablon A olsun,
    id isim soyad


    isim ve soyadlarin tek sütun olarak tutulduğu tablo B olsun.
    id kelime



    select AA.id, B1.id, B2.id
    from A AA
    left join B B1 on B1.kelime=AA.isim
    left join B B2 on B2.kelime=AA.soyad


    böyle olması lazım gibi geldi.



    < Bu mesaj bu kişi tarafından değiştirildi xpug -- 2 Ekim 2007; 13:32:54 >
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.