SQL Server内部联接仅从1个表中获取结果

时间:2014-02-27 06:54:06

标签: sql sql-server inner-join

我是内部联接的新手,我有一个让我难倒几天的查询,我基本上有一个查询,其中我试图从不同表上匹配的行中提取记录这就是我所拥有的..

var sql = "SELECT  t.*, 
                   p.* 
             FROM Threadposts t 
                  INNER JOIN profiles p 
                        ON t.profileID = p.ProfileID 
            WHERE t.threadID = @id";

我从 Threadposts t 获得结果,但个人资料p 始终为空。该查询应该说的是这个

  

从Threadpost.threadID = @id的表Threadposts和配置文件中获取所有结果,并获取其中t.profileID = p.ProfileID

的配置文件行

@id 是一个论坛页面,所以基本上如果您在论坛页面20上,那么我想获得在论坛页面20上发布的所有用户因此 Threadpost.thread = @ id 。在我们收到用户回复之后,让我们获取他们的个人资料信息,以便显示他们的姓名等,因此他们会发布 t.profileID = p.ProfileID 。如上所述,我得到了所有他们的回复,因此Threadpost可以运行,但是有些内容正在进行,我可以做些什么来解决这个问题?

Threadpost包含字段:profileID和ThreadID profileID是每个用户拥有的唯一标识,ThreadID是与发布的论坛对应的页码。当有人点击论坛页面20时,然后id = 20,然后与ThreadID为20匹配,每个行都有用户的ProfileID;我想使用该ProfileID并将其与配置文件表中的profileID匹配,以便我可以获取用户名称和位置。

1 个答案:

答案 0 :(得分:0)

这似乎是一个数据问题。如果要返回记录,则听起来好像您的配置文件记录具有空值。如果运行以下查询会发生什么?

select top 1000 * from profile;

哪些列有数据?