【发布时间】:2009-09-01 00:46:54
【问题描述】:
这应该很简单,但我正在画一个空白。我有两张桌子。
Table:article_tag_pvt
colum: article_id
column: tag_id
Table: tag
column: tag_id
column: name
article_tag_pvt 表是一个多对多数据透视表。
问题是,我需要一个给定标签名称列表的查询,它将检索仅与这些标签名称匹配的文章 ID。这些表的基本连接如下所示:
SELECT article_id
FROM article_tag_pvt pvt
INNER JOIN tag t ON t.tag_id = pvt.tag_id
我已经有一个查询,它将检索与指定的任何标签名称匹配的文章 ID。这看起来像这样:
SELECT article_id
FROM article_tag_pvt pvt
INNER JOIN tag t ON t.tag_id = pvt.tag_id
WHERE t.name IN ('events','news')
我尝试了这些,但没有任何乐趣:
SELECT article_id
FROM article_tag_pvt pvt
INNER JOIN tag t ON t.tag_id = pvt.tag_id
WHERE t.name = 'events' AND t.name = 'news'
SELECT article_id
FROM article_tag_pvt pvt
INNER JOIN (
SELECT tag_id
FROM tag
WHERE name IN ('events','news')
) AS t
ON t.tag_id = pvt.tag_id
任何帮助将不胜感激
戴夫
【问题讨论】:
标签: sql sql-server sql-server-2005 tsql