我有两张桌子,我试图合并。
表1:
FAME_ID, FAME_Emblem_Title, FAME_Category
表2:
User_ID, FAME_ID, Times_Received
但是,表2中不存在某些值。例如:
Table 1: Table 2:
Fame_ID: 1 Fame_ID: null/does not have a value
FAME_Emblem_Title: test1 User_ID: null/does not have a value
FAME_Category: 1 Times_Received: null/does not have a value
Fame_ID: 2 Fame_ID: 2
FAME_Emblem_Title: test2 User_ID: user1
FAME_Category: 1 Times_Received: 1
我的目标是按类别和用户过滤SQL查询,但仍显示与第一个过滤器匹配的所有结果,即使表2没有任何值。顺便说一下,我的输出是JSON数组形式。
结果:
[
{
"User_ID": "user1",
"FAME_ID": 1,
"FAME_Category": "1",
"Times_Received": 1,
},
{
"User_ID": "null",
"FAME_ID": 2,
"FAME_Category": "1",
"Times_Received": null,
}
]
老实说,我不确定这是否可行。任何帮助都非常感谢。谢谢!
答案 0 :(得分:3)
如果要从LEFT表返回所有行,即使没有与RIGHT表的连接,也需要JOIN称为LEFT OUTER JOIN
。如果没有匹配项,则返回左表的行,并返回缺少的右表行的所有列的值null
替代。
您可以按如下方式实现所需的连接,并在JSON中输出:
SELECT t2.User_ID, t1.FAME_ID, t1.FAME_Category, t2.Times_Received
FROM table1 t1 LEFT OUTER JOIN table2 t2 on t1.FAME_ID = t2.FAME_ID
FOR JSON AUTO;