Here I have created SQL script that full-fill your requirement.
SQL
DECLARE @USERS AS TABLE (UserId INT IDENTITY(1,1),UserName VARCHAR(50))
DECLARE @USERADDRESS AS TABLE(UserId INT,[Address] VARCHAR(50))
DECLARE @USERPOST AS TABLE(UserId INT,POSTID INT,DISCRIPTION VARCHAR(50))
DECLARE @AD_TABLE AS TABLE(ID INT IDENTITY(1,1),UserId INT,Company_Name VARCHAR(50),ADContent VARCHAR(50))
INSERT INTO @USERS VALUES
('David'),
('Jhon'),
('Kevin'),
('Peter')
INSERT INTO @USERADDRESS VALUES
(1,'London'),
(2,'UK'),
(3,'USA'),
(4,'Japan')
INSERT INTO @USERPOST VALUES
(1,1,'Sales'),
(1,2,'IT'),
(2,1,'Sales'),
(4,1,'Marketing')
INSERT INTO @AD_TABLE VALUES
(1,'Google','AD1'),
(1,'Microsoft','AD2'),
(2,'L & T','AD3'),
(4,'HP','AD4')
SELECT
us.UserId,
us.UserName,
ud.[Address],
at.Company_Name,
at.ADContent,
up.DISCRIPTION
FROM
( SELECT *
,ROW_NUMBER() OVER (PARTITION BY UserID ORDER BY ID DESC) AS rn
FROM @AD_TABLE
) at
INNER JOIN
( SELECT *
,ROW_NUMBER() OVER (PARTITION BY UserID ORDER BY POSTID DESC) AS rn
FROM @USERPOST
) up
ON at.UserID = up.UserID
INNER JOIN
(
SELECT *
,ROW_NUMBER() OVER(PARTITION BY UserID ORDER BY USerId) AS rn
FROM @USERS
) us
ON us.UserId = up.UserId
INNER JOIN
(
SELECT *
,ROW_NUMBER() OVER(PARTITION BY UserID ORDER BY USerId) AS rn
FROM @USERADDRESS
) ud
ON ud.UserId = up.UserId
AND at.rn = up.rn
AND us.rn = up.rn
Screenshot