Mysql Veri Çekme Sorunu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek
    gencbeyin bunu yazdı:
    -----------------------------

    left join, inner join kullanmalısın.

    http://www.bidb.itu.edu.tr/?d=228


    -----------------------------
    Hocam iki farklı tabloda bir veriyi referans alıp (örneğin id) birleştirerek yazmak için kullanmışlar joini. Benimkiyse çok farklı. Ama istediğim şey joinle de olabilir tabi tam anlamadım join i.

    iyibu! yeniden..
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    xzxz
    xzxz's avatar
    Kayıt Tarihi: 21/Haziran/2003
    Erkek

    iki tablonun birbirine bağlanması için ya mantıksal ya foreign key gibi yazılımsal bir bağlarının olması gerek

    yani uyeler tablosundaki sehir_id int değeri , sehirler tablosunun id değeri ile eşleşiyor ise 

     

    SELECT A.*,B.baslik AS sehir_ismi FROM uyeler AS A LEFT JOIN sehirler AS B ON A.sehir_id=B.id WHERE bla bla  ORDER BY A.bla bla 

     

    gibi birşey yazabilirsin , iki tabloyu birleştirmek için hangi join komutunu kullanırsan kullan ,  iki tablonun ilişkisini ifade edeceğin yer ON kısmıdır 

     

    bu şekilde N tane tablo birbirine bağlanılabilir , dikkat edilecek husus , birden fazla tablodaki alan adlarının aynı olabilmesidir örneğin iki tabloda da başlık varsa 

    başlıklardan birine alias takmalısın bunu da AS ile yapabilirsin , order by id dersen de olmaz , id de hangi id , A.id ya da B.id demen gerekir 


    herşeyin bir şeyi vardır
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    anladığım kadarıyla bu şekilde çalışması lazım

     

    select distinct  a.baslik, b.baslik from haberler as a, moduller as b order by b.tarih, a.tarih

     

    edit: distinct i koyarsak her bir değerden bir kere gelmesi gerek


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek
    xzxz bunu yazdı:
    -----------------------------

    iki tablonun birbirine bağlanması için ya mantıksal ya foreign key gibi yazılımsal bir bağlarının olması gerek

    yani uyeler tablosundaki sehir_id int değeri , sehirler tablosunun id değeri ile eşleşiyor ise 

     

    SELECT A.*,B.baslik AS sehir_ismi FROM uyeler AS A LEFT JOIN sehirler AS B ON A.sehir_id=B.id WHERE bla bla  ORDER BY A.bla bla 

     

    gibi birşey yazabilirsin , iki tabloyu birleştirmek için hangi join komutunu kullanırsan kullan ,  iki tablonun ilişkisini ifade edeceğin yer ON kısmıdır 

     

    bu şekilde N tane tablo birbirine bağlanılabilir , dikkat edilecek husus , birden fazla tablodaki alan adlarının aynı olabilmesidir örneğin iki tabloda da başlık varsa 

    başlıklardan birine alias takmalısın bunu da AS ile yapabilirsin , order by id dersen de olmaz , id de hangi id , A.id ya da B.id demen gerekir 


    -----------------------------
    Hocam ellerine sağlık çok güzel yazmışsın sağolasın. Fakat benim tablolarımda hiçbirşekildekilde eşitleyebileceğim bir değer yok. Yani birbirine eşitleme yok. İki adet farklı bambaşka veri çektiğini düşün ikisi de tarihe göre sıralı. Bu iki veriyi harmanlamam gerekiyor.

    iyibu! yeniden..
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek
    unbalanced bunu yazdı:
    -----------------------------

    anladığım kadarıyla bu şekilde çalışması lazım

     

    select a.baslik, b.baslik from haberler as a, moduller as b order by b.tarih, a.tarih


    -----------------------------
    Hocam ben de mantıken böyle düşündüm şuan önümde duran kodlar aynen böyle. Ama sıralamada sorun çıkıyor.


    Mesela haber-1,haber-3,haber-2,haber-1,haber-3,haber-2,haber-1,haber-3,haber-2,
    Bu şekilde oluyor


    iyibu! yeniden..
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    eğer sadece iş veritabanında değilse bu kadar uğraşmaya gerek yok bence..

    iki tane sorgu yaz iki tane tablon olsun, sonra programlama ile bunları birleştirip gridde göster..


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    xzxz
    xzxz's avatar
    Kayıt Tarihi: 21/Haziran/2003
    Erkek

    by_Tet bunu yazdı:
    -----------------------------

    Hocam ellerine sağlık çok güzel yazmışsın sağolasın. Fakat benim tablolarımda hiçbirşekildekilde eşitleyebileceğim bir değer yok. Yani birbirine eşitleme yok. İki adet farklı bambaşka veri çektiğini düşün ikisi de tarihe göre sıralı. Bu iki veriyi harmanlamam gerekiyor.
    -----------------------------

     

    ozaman bi şekilde bir ilişki kurman gerek ki yaptığının bir anlamı olsun

     

    SELECT A . * , B. *  FROM `semt` AS INNER JOIN adminler AS ORDER BY A.SEMT_ID


    gibi birşey çalıştırdım da , ne manası var bunun ?




    herşeyin bir şeyi vardır
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek
    unbalanced bunu yazdı:
    -----------------------------

    eğer sadece iş veritabanında değilse bu kadar uğraşmaya gerek yok bence..

    iki tane sorgu yaz iki tane tablon olsun, sonra programlama ile bunları birleştirip gridde göster..


    -----------------------------
    Mesela hocam siteye en son eklenenler tablosu ekleyeceğim bana tek lazım olan baslik ve tarih ancak farklı tablolar. Şimdi sorgulama yaptım eyvallah. Birincisi haber-1 haber-2 haber-3 ikincisi de modul-1 modul-2 modul-3 bunları nasıl harmanlayabilirim ki? Web yazılım diliyle. Php asp.net asp farketmez bir örnek bulunsun ben aspye çeviririm. Jquery ile de yapılabilir kanımca ama hiçbir fikrim yok.
    Buarada ilgin için tekrar teşekkürler.

    iyibu! yeniden..
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pSkpt
    pSkpt's avatar
    Kayıt Tarihi: 10/Aralık/2010
    Erkek

    CROSS JOIN ile ilişkisiz bağlanabilir diyor.

    SELECT * FROM tablo1 CROSS JOIN tablo2 ORDER BY tablo1.tarih, tablo2.tarih

     

    gibi bir dene?


    İmza...
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek
    xzxz bunu yazdı:
    -----------------------------

    by_Tet bunu yazdı:
    -----------------------------

    Hocam ellerine sağlık çok güzel yazmışsın sağolasın. Fakat benim tablolarımda hiçbirşekildekilde eşitleyebileceğim bir değer yok. Yani birbirine eşitleme yok. İki adet farklı bambaşka veri çektiğini düşün ikisi de tarihe göre sıralı. Bu iki veriyi harmanlamam gerekiyor.
    -----------------------------

     

    ozaman bi şekilde bir ilişki kurman gerek ki yaptığının bir anlamı olsun

     

    SELECT A . * , B. *  FROM `semt` AS INNER JOIN adminler AS ORDER BY A.SEMT_ID


    gibi birşey çalıştırdım da , ne manası var bunun ?




    -----------------------------
    Hocam ne manası var diyerek de anlamı olsun diyerek de ne dediğini anlamadım kusura bakma :) Ben diyorum ki hiçbir şekilde bağlantısı yok bu bir yani where a.id = b.id olayı yok. 2.si tabloları birleştirmek gibi bir olay da yok. Birinci sıralama haber 1 haber 3 haber 2 . İkinci sıralama modul 2 modul 3 modul 1 modul 4 ikisini harmanlayınca misalen haber 1 modul 2 modul 3 haber 3 modul 4 haber 2 gibi bir sıra çıkmalı.

    iyibu! yeniden..
Toplam Hit: 3245 Toplam Mesaj: 31