Sql server 是否有一个相当于;在;添加";及;问题的答案

Sql server 是否有一个相当于;在;添加";及;问题的答案,sql-server,tags,Sql Server,Tags,我在sql server中有以下表格: 相册稳定: 相册\u ID 专辑标题 albumtagmap id 相册\u id 标签号 相册标签 id 标签名称 我有以下查询,将显示t.tag_name在“Trips”或“Beach”中的位置: SELECT b.* FROM albumtagmap bt, photoalbums b, albumtags t WHERE bt.tag_id = t.id AND (

我在sql server中有以下表格:

相册稳定:
相册\u ID
专辑标题

albumtagmap
id
相册\u id
标签号

相册标签
id
标签名称

我有以下查询,将显示t.tag_name在“Trips”或“Beach”中的位置:

SELECT b.* FROM albumtagmap bt, photoalbums b, albumtags t
                     WHERE bt.tag_id = t.id
                     AND (t.tag_name IN ('Trips', 'Beach'))
                     AND b.album_id = bt.album_id
                     GROUP BY b.album_id, b.album_caption, b.active, b.description, b.album_name, b.album_date, b.highlight_picture
                     ORDER BY b.album_date desc
如果我想显示t.tag\u name在“Trips”和“Beach”中的位置,那么等效的查询是什么
这意味着在albumtagmap表中,对于每个标签,都有此特定相册的条目。

听起来像是您可能希望使用两个子查询的联接(每个标签一个查询,然后在相册id上进行内部联接)。您也可以只使用两个EXISTS子查询中的AND。

只是想知道,是否真的不清楚如何从中选择具有多个标记的项?
( SELECT b.* FROM albumtagmap bt, photoalbums b, albumtags t
WHERE bt.tag_id = t.id
AND t.tag_name='Trips'
AND b.album_id = bt.album_id )

INTERSECT

( SELECT b.* FROM albumtagmap bt, photoalbums b, albumtags t
WHERE bt.tag_id = t.id
AND t.tag_name = 'Beach'
AND b.album_id = bt.album_id )

ORDER BY  album_date desc