PDA

View Full Version : نحوه ی join دو جدول و تنها انتخاب یک سطر از یکی از طرفین



alef.divar
پنج شنبه 23 مهر 1394, 11:00 صبح
سلام
من دو تا جدول محصول و تصاویر محصول دارم. با فیلد های زیر:

tbl_product : id / name / price
tbl_prd_img : id / extension / fkProduct

حال مشکل من نوشتن کوئری است که فیلدهای جدول محصول را بهمراه تنها یکی از سطر های مربوط به آن محصول که در جدول تصاویر است برگرداند.
ممنونم

کد زیر رو هم نوشتم ولی بخاطر نام محصول خطا میگیره:


SELECT p.*,pi.* FROM Tbl_Product AS p
INNER JOIN Tbl_Product_Image AS pi ON p.Product_Id_bint = pi.FK_prid_bint
GROUP BY p.Product_Id_bint

malloc
پنج شنبه 23 مهر 1394, 13:52 عصر
سلام ..... خودم هم این موضوع رو بلد نبودم اما الان حدود 1 ساعت درگیرش بودم جواب هم گرفتم ......

شما اول باید یه ویو بصورت زیر بسازی /


WITH ORDERED AS
(
SELECT
id
, extension
, fkProduct
, ROW_NUMBER() OVER (PARTITION BY fkProduct ORDER BY fkProduct) AS rn
FROM
Tbl_Product_Image
)

SELECT
id
, extension
, fkProduct
FROM
ORDERED
WHERE
rn = 1;


بعد حالا فقط جدول product رو بصورت معمولی و بدون groupby و .... به این ویو وصل کن

ایشالا جواب بگیری

alef.divar
پنج شنبه 23 مهر 1394, 15:23 عصر
ممنونم، جواب داد.