Надеюсь, вы используете Sql Server 2008 (в противном случае оператор вставки в моем запросе не будет работать).Попробуй это.Из требуемого результата, я думаю, вам нужны все значения из таблицы 2 и соответствующее значение Single (имя столбца в таблице 1).
DECLARE @tempTable1 TABLE (ID1 INT,Name VARCHAR(10),ID2 INT,Single INT)
DECLARE @tempTable2 TABLE (ID1 INT,Name VARCHAR(10),ID2 INT,Monthly INT)
INSERT INTO @tempTable1 VALUES
(1 ,'ABC' ,1 ,100),
(2 ,'DEF' ,1 ,200)
INSERT INTO @tempTable2 VALUES
(3 ,'PQR' ,2 ,500 ),
(4 ,'LMN' ,2 ,600 ),
(1 ,'ABC' ,2 ,700 ),
(2 ,'DEF' ,2 ,800 );
SELECT
T2.ID1
,T2.Name
,T2.ID2
,T1.Single
,T2.Monthly
FROM @tempTable2 T2
LEFT OUTER JOIN @tempTable1 T1
ON T2.ID1 = T1.ID1
ORDER BY T2.ID1