MSSQL组按查询-使用结果执行下一个查询


MSSQL Group By Query - Use Results to perform next query

我不确定这是否可能,但我有一个名为category的表。每个类别被分配到一个部门。因此,我查询数据库以获得一组类别

SELECT id_category FROM [db].[dbo].[category]
WHERE (id_division = <<id_division_here>>) GROUP BY id_category

我得到了我所期望的类别列表。现在,我需要确保这些类别存在于另一个名为content的表中,该表具有包含多个值的字段-因此LIKE语句适用于此…基本上

SELECT title FROM [db].[dbo].[content]
WHERE (assigned_to LIKE '% <<id_category_here>> %') ORDER BY title

我的问题是,是否有一种方法可以让我结合这两个查询,或者他们需要分开做吗?我可以将一个表的结果分组,并将其用作查询另一个表的搜索条件吗?谢谢你帮我解决这个问题。:)

尝试:

SELECT a.id_category, o.title 
FROM [db].[dbo].[category] a
JOIN [db].[dbo].[content] o
  ON o.assigned_to LIKE '%'+ a.id_category + '%'
WHERE a.id_division = <<id_division_here>>

这可能对你有帮助-

SELECT /*DISTINCT*/ c.title, t.id_category 
FROM dbo.content c
CROSS JOIN (
    SELECT DISTINCT c.id_category 
    FROM dbo.category c
    WHERE c.id_division = <id_division_here> 
) t
WHERE c.assigned_to LIKE '%' + t.id_category + '%' 
ORDER BY c.title