我有一个包含用户信息的表和一个包含标签信息的表。标记表基本上具有标记类型、用户 ID 和标记值。我根据 UserID 加入了这两个表。
现在我想用 TagType = 1 的标签的值查询所有用户的列表。
SELECT [user].name, [tag].value
FROM user LEFT OUTER JOIN
tag ON user.id = tag.userid
WHERE [tag].type = 1
到目前为止,一切都很好。这很好用。
我现在遇到的问题是,我还希望在我的查询中看到没有标签类型 = 1 的标签的用户。在这种情况下,它应该只返回 NULL。现在,查询不会返回这些用户。
如果我摆脱了“WHERE [tag].id = 1”,那么它们就会出现,但它会为每个用户返回几行——每个现有标签类型一个——但我不希望这样。
从某种意义上说,我想得到:
Column 1: User Name
Column 2: Tag value of Tag Type 1 if it exists, otherwise NULL
我被困在那里。我不知道如何让其他用户加入,但将其他标签类型拒之门外。