ورود

View Full Version : join هر رکورد یک جدول با فقط یک رکورد از جدول دیگر



mbasirati
شنبه 04 خرداد 1392, 11:02 صبح
سلام
من دوتا جدول دارم یکی به نام albums و یکی به نام pics. توی جدول اول نام آلبومها نگهداری میشه و توی جدول دوم عکسهای مربوط به هر آلبوم. خب طبیعتا از طریق albumID این دو جدول باهم در ارتباطن.

حالا من میخوام یه کوئری بسازم که رکوردهای جدول albums رو بهم بده و برای هر رکوردش یکی از رکوردهای مربوط به جدول pics هم در کنارش باشه. یعنی میخوام هر آلبوم یکی از عکسهای خودش رو در کنارش داشته باشه.
albums: albumID, albumName
pics: picID,picName,albumID

امیدوارم سوالم رو متوجه شده باشید.
چه کوئری برای این کار باید بنویسم؟

محمد سلیم آبادی
شنبه 04 خرداد 1392, 11:31 صبح
فرض میگیریم آخرین عکس هر آلبوم را میخواهید
select a.*, d.picName
from
(
select row_number() over(partition by albumID order by picID desc) as rnk, picName, albumID
from pics
)d
inner join albums a
on d.albumID = a.albumID
where rnk = 1;