Hello friend i have put some dummy data and make one query to select the first images from Image table, i thought it might helps you.
CREATE TABLE PRODUCT(
ProductId INT IDENTITY(1,1)
,ProductName NVARCHAR(MAX)
,Detail NVARCHAR(MAX)
,CountryId INT
,StateId INT
,CityId INT
,CategoryId INT
,CompanyId INT
,StartingDate DATETIME
,ClosingDate DATETIME
,BidPrice FLOAT
,BidIncrement INT
,Model VARCHAR(50)
,RegisterNo VARCHAR(50)
,IsAvailable BIT
,Status BIT
)
CREATE TABLE IMAGES(
ImageId INT IDENTITY(1,1)
,ProductId INT
,ProductImage VARCHAR(50)
,IsActive BIT
)
INSERT INTO PRODUCT(ProductName,Detail,BidPrice) VALUES('Prod1','Test Prod 1',1000)
INSERT INTO PRODUCT(ProductName,Detail,BidPrice) VALUES('Prod2','Test Prod 2',1000)
INSERT INTO PRODUCT(ProductName,Detail,BidPrice) VALUES('Prod3','Test Prod 3',1000)
INSERT INTO PRODUCT(ProductName,Detail,BidPrice) VALUES('Prod4','Test Prod 4',1000)
INSERT INTO IMAGES(ProductId,ProductImage,IsActive) VALUES(1,'Prod1 Image 1',1)
INSERT INTO IMAGES(ProductId,ProductImage,IsActive) VALUES(1,'Prod1 Image 2',1)
INSERT INTO IMAGES(ProductId,ProductImage,IsActive) VALUES(1,'Prod1 Image 3',1)
INSERT INTO IMAGES(ProductId,ProductImage,IsActive) VALUES(2,'Prod2 Image 1',1)
INSERT INTO IMAGES(ProductId,ProductImage,IsActive) VALUES(2,'Prod2 Image 2',1)
INSERT INTO IMAGES(ProductId,ProductImage,IsActive) VALUES(3,'Prod3 Image 1',1)
INSERT INTO IMAGES(ProductId,ProductImage,IsActive) VALUES(4,'Prod4 Image 1',1)
INSERT INTO IMAGES(ProductId,ProductImage,IsActive) VALUES(4,'Prod4 Image 2',1)
SELECT * FROM PRODUCT
SELECT * FROM IMAGES
SELECT * FROM (
SELECT *,ROW_NUMBER() OVER(PARTITION BY PRODUCTID ORDER BY ProductImage ) AS RCNT FROM IMAGES) AS DATA
WHERE DATA.RCNT = 1
and the OUT PUT is like this
ImageID ProductID ProductIMage IsActive RCNT
1 1 Prod1 Image 1 1 1
4 2 Prod2 Image 1 1 1
6 3 Prod3 Image 1 1 1
7 4 Prod4 Image 1 1 1
And with Product Table And Image Table Join
SELECT PRODUCT.ProductId,PRODUCT.ProductName,PRODUCT.Detail ,PRImage.ProductImage FROM PRODUCT
INNER JOIN (
SELECT * FROM (
SELECT *,ROW_NUMBER() OVER(PARTITION BY PRODUCTID ORDER BY ProductImage ) AS RCNT FROM IMAGES) AS DATA
WHERE DATA.RCNT = 1) AS PRImage ON PRImage.PRODUCTID = PRODUCT.PRODUCTID
OUT PUT
ProductId ProductName Detail ProductImage
1 Prod1 Test Prod 1 Prod1 Image 1
2 Prod2 Test Prod 2 Prod2 Image 1
3 Prod3 Test Prod 3 Prod3 Image 1
4 Prod4 Test Prod 4 Prod4 Image 1
You can modifiy this query as per your requirement.