none
2 Tablo Arasında JOIN Sorgusu RRS feed

  • Soru

  • Merhaba
    SQL sorgusuyla ilgili bir sorunum var kaç gündür çözemedim 
    örnek olarak şöyle bir tablomuz var

    urun adlı tablomuzda urun_id , urunadi   alanları var

    galeri adlı tablomuzda galeri_id , urun_id , resimyolu alanlarımız var

    1 Bilgisayar
    2 Beyaz Eşya  ürünler tablosunda örnek olarak bunlar kayıtlı

    1   1  img/resim1.jpg

    2    1  img/resim2.jpg

    3    2  img/resim3.jpg

    4    2  img/resim4.jpg galeri tablomuzda örnek olarak bunlar kayıtlı


    urunler sayfasında urun tablosundan urunadi galeri tablosundan da urun tablosunda urun_id ye göre resimlerden 1 tanesini çekmek istiyorum

    yani urunler tek tek gösterilecek urun_id lerine görede galeri tablosundan resimlerden 1 tanesi gösterilecek


    Bilgisayar   img/resim1.jpg
    Beyaz eşya   img/resim3.jpg

    6 Ocak 2014 Pazartesi 10:58

Yanıtlar

  • select UrunAdi, 
      (select top 1 resimyolu from galeri 
       where galeri.urun_id = urun.urun_id) as resimYolu
    from Urun

    Not: Kac gundur cozemedim demissin. O zaman asil isin SQL ile degil. C#, VB.Net? Oyleyse hic ugrasma SQL ile Linq kullan:

    var urunler = from u in db.Urun
       select new { 
       Urun = u.UrunAdi, 
       Resim = u.Galeri.Any()
              ?u.Galeri.First().ResimYolu
              :null 
       };

    • Düzenleyen CetinBasoz 6 Ocak 2014 Pazartesi 11:55
    • Yanıt Olarak İşaretleyen Özgür Tekbaş 13 Ocak 2014 Pazartesi 07:16
    6 Ocak 2014 Pazartesi 11:35

Tüm Yanıtlar

  • Merhaba;

    select distinct r.UrunAdi,rr.ResimYolu from Urun as r
    inner join galeri as rr on rr.UrunID=r.ID


    Microsoft bu servisi kullanıcılarına yardım etme, Microsoft urunleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ucretsiz sunmaktadır. Bu icerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi bir sorumluluk ustlenildiği anlamına gelmez. Iletişim: Mail Gönder

    6 Ocak 2014 Pazartesi 11:13
  • select UrunAdi, 
      (select top 1 resimyolu from galeri 
       where galeri.urun_id = urun.urun_id) as resimYolu
    from Urun

    Not: Kac gundur cozemedim demissin. O zaman asil isin SQL ile degil. C#, VB.Net? Oyleyse hic ugrasma SQL ile Linq kullan:

    var urunler = from u in db.Urun
       select new { 
       Urun = u.UrunAdi, 
       Resim = u.Galeri.Any()
              ?u.Galeri.First().ResimYolu
              :null 
       };

    • Düzenleyen CetinBasoz 6 Ocak 2014 Pazartesi 11:55
    • Yanıt Olarak İşaretleyen Özgür Tekbaş 13 Ocak 2014 Pazartesi 07:16
    6 Ocak 2014 Pazartesi 11:35
  • Merhaba Kerem,

    Aşağıdaki SELECT cümlesi işini görebilir

    select *, 
    	(select top 1 resimyolu from galeri where urun_id = u.urun_id order by NEWID()) resimyolu
    from urun u
    
    SubSelect içindeki ORDER BY NEWID() rasgele bir sıralama yaparak galeriden her defasında farklı resimler seçmene olanak sağlar. Dilersen Order By kısmını kaldırabilirsin.


    SQL Server, SQL Server 2012 Denali and T-SQL Tutorials

    • Yanıt Olarak Öneren Aydere 9 Ocak 2014 Perşembe 15:41
    6 Ocak 2014 Pazartesi 11:39
  • Bu seferde hata ile karşılaşıyorum 

    DataBinding: 'System.Data.DataRowView', urunadi adında bir özellik içermiyor.

    6 Ocak 2014 Pazartesi 11:49
  • Sen dedin urunadi diye. Yukarida yazdigina bak. DataRowView olduguna gore .Net dillerinden birisini kullaniyorsun, o zaman Linq kullan dedigim gibi.
    6 Ocak 2014 Pazartesi 11:58
  • Merhaba Kerem,

    Aşağıdaki SELECT cümlesi işini görebilir

    select *, 
    	(select top 1 resimyolu from galeri where urun_id = u.urun_id order by NEWID()) resimyolu
    from urun u
    SubSelect içindeki ORDER BY NEWID() rasgele bir sıralama yaparak galeriden her defasında farklı resimler seçmene olanak sağlar. Dilersen Order By kısmını kaldırabilirsin.


    SQL Server, SQL Server 2012 Denali and T-SQL Tutorials

    hatayla karşılaştım

    Syntax error (missing operator) in query expression '(SELECT TOP 1 resimyolu FROM galeri WHERE urun_id=u.urun_id ORDER BY NEWID())resimyolu'.

    6 Ocak 2014 Pazartesi 12:00
  • Merhaba;

    select distinct r.UrunAdi,rr.ResimYolu from Urun as r
    inner join galeri as rr on rr.UrunID=r.ID


    Microsoft bu servisi kullanıcılarına yardım etme, Microsoft urunleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ucretsiz sunmaktadır. Bu icerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi bir sorumluluk ustlenildiği anlamına gelmez. Iletişim: Mail Gönder

    Sorgu çalışıyor fakat benim istediğim resim tek 1 tane gelecek kategori gibi düşünelim kategori resmi olarak 1 tane gelecek bu sorguda resim kaç tane varsa urunadi o kadar geliyor 
    6 Ocak 2014 Pazartesi 12:01
  • Merhaba Kerem, SQL Server Management Studio üzerinde çalıştırdığımda SELECT'te herhangi bir problem olmuyor :(

    SQL Server, SQL Server 2012 Denali and T-SQL Tutorials

    6 Ocak 2014 Pazartesi 12:03
  • Merhaba Kerem, SQL Server Management Studio üzerinde çalıştırdığımda SELECT'te herhangi bir problem olmuyor :(

    SQL Server, SQL Server 2012 Denali and T-SQL Tutorials

    Kusura bakmayın .net dillerinden birini kullandığımı söylemedim çetin bey demese iyice konu uğraştırıcı olucaktı kusuruma bakmayın hepsini linq ile deneyeceğim.
    6 Ocak 2014 Pazartesi 12:06
  • select UrunAdi, 
      (select top 1 resimyolu from galeri 
       where galeri.urun_id = urun.urun_id) as resimYolu
    from Urun

    Not: Kac gundur cozemedim demissin. O zaman asil isin SQL ile degil. C#, VB.Net? Oyleyse hic ugrasma SQL ile Linq kullan:

    var urunler = from u in db.Urun
       select new { 
       Urun = u.UrunAdi, 
       Resim = u.Galeri.Any()
              ?u.Galeri.First().ResimYolu
              :null 
       };

    Hocam bu linq kod blogu hata veriyor galerinin altını kırmızı çiziyor
    6 Ocak 2014 Pazartesi 13:14
  • Galeri benim dusundugum navigasyon propertysi. Dogrusu ne ise onu kullan.
    6 Ocak 2014 Pazartesi 15:59
  • Galeri benim dusundugum navigasyon propertysi. Dogrusu ne ise onu kullan.
    AkvaryumDataContext db = new AkvaryumDataContext();
                var urun = from u in db.uruns
                           join g in db.galeris
                           on u.urun_id equals g.urun_id
                           select new
                           {
                               Urun = u.urunadi,
                               Resim = u.galeris.Any()
                               ? u.galeris.First().resimyolu
                                   : null
                           };
                           

                RptUrun.DataSource = urun;
                RptUrun.DataBind();

    Hocam buyrun kodunuzun aynısını yazdım joini neden kullandım bilmiyorum ama joini kullanmasamda hata veriyor resimyolu içeriğinde hata veriyor
    AkvaryumDataContext db = new AkvaryumDataContext();
                var urun = from u in db.uruns
                           select new
                           {
                               Urun = u.urunadi,
                               Resim = u.galeris.Any()
                               ? u.galeris.First().resimyolu
                                   : null
                           };
                           

                RptUrun.DataSource = urun;
                RptUrun.DataBind();
    böylede olmuyor yani
    8 Ocak 2014 Çarşamba 13:51
  • Tamam ama ne hatasi verdigini neden yazmiyorsun. Ben dogrudan nullable bir tip dusundum belki de hata odur, o zaman basina bir cast eklersin olur. Mouse'u uzerine gotur hatayi soyler.

    8 Ocak 2014 Çarşamba 14:33