Para aumentar a performace vai depender de varios fatores,
vc pode fazer com JOINS sem problema , mas tambem pode fazer com o CROSS APPLY
segue o exemplo
DECLARE @Produtos TABLE
(
produto VARCHAR(MAX) ,
idCategoria INT NOT NULL ,
tipo SMALLINT
);
DECLARE @Categorias TABLE
(
idCategoria INT ,
categoria VARCHAR(MAX)
);
INSERT INTO @Categorias
( idCategoria, categoria )
VALUES ( 1, 'ab' ),
( 2, 'xx' ),
( 3, 'xa' ),
( 4, 'yy' );
INSERT INTO @Produtos
( produto, idCategoria, tipo )
VALUES ( 'AAA', 1, 1 ),
( 'AAA', 2, 1 ),
( 'AAA', 2, 2 ),
( 'BBB', 3, 1 ),
( 'BBB', 4, 1 );
SELECT P.produto ,
P.tipo,
C.categoria
FROM @Produtos AS P
CROSS APPLY ( SELECT C.idCategoria ,
C.categoria
FROM @Categorias AS C
WHERE C.idCategoria = P.idCategoria
) AS C;
Wesley Neves