Merhaba sevgili sql expertleri,

kategoriler ve makaleler diye iki tane tablomuz olsun. Her kategoriye ait sadece bir tane makaleyi çeken sql sorgusu nasıl olmalı ?


 

soru daha anlaşılır olsa iyi olur. kategoriler ve makaleler tabloları birbirine ne ile bağlı? (foreign key ne yani) anladığım kadarı ile yazayım.

şimdi bir kategoride birden fazla makale olma durumuda var dolayısı ile sen nasıl çekmek istiyorsun bu makaleyi bir tane olarak anlayamadım. ama "top" komutunu kullanark o kategorideki ilk buldugu makaleyi getirebilirsin.bunun için:
(makaleler tablosunda kategorilerin ismine foreign key olduğunu varsaydım)

select top 1 * from makaleler where kategori_name = "(çekmek istediğin kategori ismini yaz)"

bu sorgu seçtiğin kategori isminde bulduğu ilk makaleyi getirir.

yazik ziyan

kategoriler tablosu
------------
kat_id
kat_adi

makeleler tablosu
-------
makale_id
makale_baslik
makale_icerik
makale_kategori

burdaki makale_kategori ile kat_id birbiri ile ilişkili.

kategorilerimiz: 1-fizik, 2-kimya, 3-biyoloji.

bu üç kategoriye ait 60 tane makale var diyelim. ben öyle bir sorgu yazmak istiyorum ki sadece üç* sonuç dönsün, ve bu üç sonucun da kategorileri farklı olsun.

gsgsgsgsgsgsgsgs

SELECT k.*,m.*
FROM kategoriler k
INNER JOIN (
SELECT makale_kategori, MAX(makale_id) FROM makaleler GROUP BY makale_kategori
) MaxMakale ON k.kat_id = MaxMakale.makale_kategori
INNER JOIN makaleler m ON
MaxMakale.makale_id = m.makale.id and MaxMakale.makale_kategori=m.makale_kategori

zfr38

ilgilendiğiniz için teşekkür ederim. Bu şekillderde yapamadım, stored procedure ile hallettim.

gsgsgsgsgsgsgsgs
1

mobil görünümden çık