From: Yılmaz ŞİPKA (bilgi@okyanusmedya.com.tr)
Date: Sat 07 Jul 2007 - 11:25:08 EEST
Eğer iki tabloda kayıtlar varsa aşağıdaki gibi tabloları birleştirip kayıtları alabilirsiniz ama her kitap için gene yazar sayısı kadar kayıt çıkacaktır. Yani iki tane yazarı varsa 2 , üç tane yazarı varsa üç kayıt çıkar her kitap için. Bunu da yazacağınız kodla birleştirebilirsiniz.
SELECT distinct * FROM kitaplar LEFT JOIN yazarlar ON kitaplar.yazarid=yazarlar.yazarid
_____
From: linux-programlama-bounces@liste.linux.org.tr [mailto:linux-programlama-bounces@liste.linux.org.tr] On Behalf Of Sami Beyoglu
Sent: Saturday, July 07, 2007 3:08 AM
To: linux-programlama@liste.linux.org.tr
Subject: [Linux-programlama] Re: mysql birden fazla sutunu tek sutundatoplamak
zaten veri tekrarı falan yok ilk mesajımda bunun bir view olduğunu söylemiştim
Bir kitabın birden fazla yazarı olma durumu söz konusu o yüzden çoka çoka ilişki yaptık
tabloların aslı şu şekildedir
kitap tablosu
id ad isbn yayinevi vs...
yazar tablosu
id ad soyad vs...
yazar-kitap tablosu
yazarid, kitapid...
benim yapmak istediğim ilk mesajda bahsettiğim viewden ya da bu tablolardan eğer bir kitabın 1den fazla yazarı var ise
kitapid kitapadı isbn y a z a r vs..
1 cin ali 100 yazar1, yazar2...
şeklinde bi çıktı getirmesi
şimdi anlatabildim sanırım.
şimdiden teşekkürler
Abdulcelil SIRMA <abdul_celil@email.com> wrote:
boyle bir durumda id no 1 olan kitap için iki veri girmek zorunda kalmışsın. id anahtar saha ise veritabanında boyle bir duruma izin verilmez. tekrarlanan kayıt olduğu için. bunu çözebilmen için yazar adında bir tablo daha oluştur.
kitap_id | yazar_id | yazar_ad
1 1 A
1 2 B
2 1 A
bu şekilde ayrı kısa bir tablo daha oluşturursan hem daha az kayıt tekrarı yapmış olursun hemde veritabanın normalizasyona uygun olacağından daha düzenli bir hale gelmiş olur.
veri çekmek içinde
select * from kitap where kitap.kitapid=yazar.kitap_id
şeklinde bir sorgu senin belirttiğin tablo ile benim yazdığım yazar tablosunu birbirine bağlar ve her iki tablodaki eşit kitap id lerini bularak tekrarlar.
kolay gelsin....
----- Original Message -----
From: "Sami Beyoglu"
To: linux-programlama@liste.linux.org.tr
Subject: [Linux-programlama] Re: mysql birden fazla sutunu tek sutunda toplamak
Date: Fri, 6 Jul 2007 16:00:51 -0700 (PDT)
Böyle olduðuna emin misiniz?
Yýlmaz ÞÝPKA <bilgi@okyanusmedya.com.tr> wrote:
SELECT * FROM kitaplar GROUP BY kitapid,kitapad,isbn,yazar
Kolay gelsin.
_____
From: linux-programlama-bounces@liste.linux.org.tr [mailto:linux-programlama-bounces@liste.linux.org.tr] On Behalf Of Sami Beyoglu
Sent: Friday, July 06, 2007 10:49 PM
To: linux-programlama@liste.linux.org.tr
Subject: [Linux-programlama] mysql birden fazla sutunu tek sutunda toplamak
kutuphane icin web sayfasý yapýyorum elimde kullanmak istediðim bir view var asagidaki sekilde
kitapid | kitapad | isbn | yazar | ...
1 ABC 31 A
2 DEF 20 A
1 ABC 31 B
...
þeklinde eðer o kitabýn birden fazla yazarý varsa kitap yazar sayýsý kadar tekrar ediyor. Yapmak istediðim öyle bir sql sorgusu yazalým ki
kitapid | kitapad | isbn | yazar | ...
1 ABC 31 A, B
2 DEF 20 A
Þeklinde çýktý versin
Þimdiden teþekkürler
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
--We've Got Your Name at Mail.com <http://www.mail.com/?utm_source=mail_sent_footer&utm_medium=email&utm_term=070621&utm_content=textlink&utm_campaign=we_got_your_name> Get a FREE E-mail Account Today - Choose From 100+ Domains
_______________________________________________ Linux-programlama mailing list Linux-programlama@liste.linux.org.tr http://liste.linux.org.tr/mailman/listinfo/linux-programlama
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama