【发布时间】:2011-05-03 12:53:42
【问题描述】:
我确定我一定是在这里犯了一个小错误,但我一直在寻找有关此问题的帮助,但我只能找到有关条件 INNER JOIN 的信息。
问题是这个存储过程根本没有返回任何东西。如果我只输入:
SELECT TOP (6) UserID, Category, Title, SUBSTRING(Article, 0, 200) AS Summary, DatePosted
FROM ContribContent
WHERE (DateFeatured IS NOT NULL)
ORDER BY DateFeatured DESC
进入控制台,然后我得到返回的值。所以它必须与内部连接有关? 编辑 >
这个想法是:
- 取已被 精选(DateFeatured 不为空) 并将其全部放入临时 表
- 从 users 表中获取用户名和图片,并使用 UserID 值将它们与临时表中的值进行匹配。
- 按照每个帖子出现的日期对临时表进行排序。
- 从表格中选择前六个条目
代码如下:
ALTER PROCEDURE [dbo].[admin_GetFeaturedContrib]
AS
BEGIN
DECLARE @FeaturedContrib TABLE (
UserID INT,
Category INT,
Title varchar(100),
Summary varchar(200),
DatePosted date,
FirstName varchar(50),
LastName varchar(50),
Picture varchar(100)
)
INSERT INTO @FeaturedContrib
SELECT TOP 6 ContribContent.UserID, ContribContent.Category, ContribContent.Title, SUBSTRING(ContribContent.Article, 0, 200) AS Summary, ContribContent.DatePosted, Users.FirstName, Users.LastName, Users.Picture
FROM ContribContent
INNER JOIN Users
ON ContribContent.UserID = Users.UserID
WHERE ContribContent.DateFeatured IS NOT NULL
ORDER BY ContribContent.DateFeatured DESC
SELECT * FROM @FeaturedContrib
END
涉及到两个数据表:
用户 - 存储所有用户及其信息的表格。
- 用户ID INT
- 名字 varchar(50)
- 姓氏 varchar(50)
- 图片varchar(50)
- 等等……
贡献内容
- ContribContentID INT
- 用户ID INT
- INT 类别
- 标题 varchar(100)
- 文章 varchar(MAX)
- 图片varchar(50)
- 发布日期
- DateFeatured 日期
- 已删除位
感谢任何可以提供帮助的人!
【问题讨论】:
-
哇,我真是太愚蠢了。抱歉啊哈,刚刚做了一个编辑。
标签: sql stored-procedures inner-join where