Sqlciler İçeriye :)) [Mysql Ya Da Mssql]
-
Yukarıdaki resimde de gördüğünüz gibi 2 tane tablo var. Sitemin anasayfasında sayfalara ait resimleri rastgele çekmem gerekiyor. Tabloda da gördüğünüz gibi;
w, saasd-as-dasd, sdfsd-f ve sdf-s-dfsd adlarıyla kaytlı 4 tane sayfam var. Ve bazı sayfaların 3, bazılarının da 4 tane resmi var. Anasayfaya her sayfadan 1 tane ve rastgele olmak şartıyla verileri çekmek istiyorum. Denediğim sorgu şu: "select photo_address, sayfa_link, photo_page_link, sayfa_isim from sayfalar inner join photos on sayfalar.sayfa_link = photos.photo_page_link order by rand()". Bu sorgunun yaptığı da şu:
4 sayfaya ait 4 tane veri çekiyor ve onları rastgele sıralıyor yani farklı veri çekmiyor. Nasıl bir sorgu kullanmalıyım ? Ayrıca group by kullanarak bir sorgu da yazdım fakat sonuç aynı.
Not: C# kodu önermeyin, kodla yaparım zaten. Ama çok fazla veri olacağı için sql sorgusuyla yapmak istiyorum.
Not2: Kullandığım veritabanı Mysql ama siz Mssql sorgusunu yazarsanız da olur.
-
asp.net C# ile mi kodluyorsun siteyi?
-
TeRRoR bunu yazdı:
-----------------------------
asp.net C# ile mi kodluyorsun siteyi?
-----------------------------Evet, hayırdır ?
-
Hocam INNER JOIN yerine RIGHT JOIN kullan. Not: eger verilerin 100 kusurdan fazla ise rand fonksiyonu sql in cevap suresini cok uzatir. Onun yerine verilerinin tamamini bir Array icine alip sonra bu Arraydan rastgele veri cekmen daha hizli olur.
-
Evet sanırım 100den fazla veri olacak. Dediğin gibi yapayim bari. Ne right join ne de inner join işime yarar şu andan sonra :)