我无法使用SQL Server中的JOIN从两个表中获取完整记录。如何从SQL Server 2008 R2中的两个表中获取完整记录
我需要两个表中的全部细节,其中ID=1
我有表Blog
& Category
。
Blog
表:
ID BlogTitle CatID Public
--------------------------------------
1 Title One 10 1
2 Title Two 0 1
3 Title Three NULL 1
Category
表:
CatID CatName
--------------------
10 Category One
20 Category Two
查询
SELECT
ID, BlogTitle, c.CatID, CatName
FROM
Blog b
FULL OUTER JOIN
Category C ON b.CatID = c.CatID
WHERE
Public = 1 AND ID = 1
从这个查询,我得到以下结果:
ID BlogTitle CatID CatName
----------------------------------------
1 Title One NULL NULL
虽然我期待下面的结果
ID BlogTitle CatID CatName
----------------------------------------------
1 Title One 10 Category One
我尝试一些东西,但我不知道我做错了。
只是为了仔细检查:是CATID的两个表中的数据类型一样吗?你确定,你正在为所需的记录存储相同的值(在这种情况下,10没有空格和不可打印的字符)?如果在左边的表上有一个常量过滤器,则不需要完全联接,因为它会将结果减少到仅包含所有空值的值。 – Pred
请粘贴SELECT ID的输出,BlogTitle,c.CatID,CatName FROM Blog b FULL OUTER JOIN类别C ON b.CatID = c.CatID WHERE Public = 1 – ProgrammerBoy
@Pred,是两个CatID都是'Int'键入两个表中。不知道为什么这让我非常头疼..我在两张表中都有交叉检查记录。 – Learning