我是内部联接的新手,我有一个让我难倒几天的查询,我基本上有一个查询,其中我试图从不同表上匹配的行中提取记录这就是我所拥有的..
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匹配,以便我可以获取用户名称和位置。
答案 0 :(得分:0)
这似乎是一个数据问题。如果要返回记录,则听起来好像您的配置文件记录具有空值。如果运行以下查询会发生什么?
select top 1000 * from profile;
哪些列有数据?