Arama butonu
Bu konudaki kullanıcılar: 1 misafir
4
Cevap
519
Tıklama
0
Öne Çıkarma
farklı satırlardan veri alma
#
18 yıl
Onbaşı
Konu Sahibi

ö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

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



M
18 yıl
Yarbay

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


Bu mesaja 1 cevap geldi.
#
18 yıl
Onbaşı
Konu Sahibi

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.


Bu mesaja 1 cevap geldi.
M
18 yıl
Yarbay

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 >
Bu mesaja 1 cevap geldi.
X
18 yıl
Binbaşı

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 >

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.