使存储过程从三个不同的表中返回5个小数据

时间:2009-08-28 14:23:55

标签: sql sql-server tsql

我在这里遇到了存储过程的问题,我不知道该怎么做或如何处理这个问题。我相信这里有一个天才可以帮助我! :d

alt text

我希望我的存储过程返回Anuncio的idAnuncio,titulo,precio,descripcion,并使用它的外键返回Categoria的描述和Imagenes的imagen。

但是这里有捕获,我需要从我的应用程序发送一个idCategoria(int)变量,这样存储过程就可以了:“啊,你想要看到所有类别1的项目,这里是你的。 “并返回一个包含所有内容的数组或数组。

请帮忙!我完全迷失了,我只需要一个有效的例子来弄清楚其余部分。

谢谢你们! ;)

2 个答案:

答案 0 :(得分:2)

CREATE PROC DoStuff
   @Parameter int
AS
SET NOCOUNT ON;

SELECT
    *
FROM 
    Categoria C
    JOIN
    Anuncio A ON C.idCategoria = A.idCategoria
    JOIN
    Imagenes I ON A.idImagen = I.idImagen 
WHERE
    C.idCategoria = @Parameter;
GO

答案 1 :(得分:1)

尝试以下方法:

DECLARE @CategoriaID INT
SET @CategoriaID = 1

SELECT a.idAnuncio,
       a.titulo,
       a.precio,
       a.descripcion,
       c.descripcion,
       i.imagen
FROM  bo.Anuncio a
    INNER JOIN dbo.Categoria c
        ON a.idCategoria = c.idCategoria
    INNER JOIN  dbo.Imagenes i
        ON a.idImagen = i.idImagen
WHERE a.idCategoria = @CategoriaID

这是一个查询,但你应该能够将它变成一个足够简单的SP。可能会有一些拼写错误,但它应该让你开始。