MSSQL Group By Query - 使用Results执行下一个查询

时间:2013-04-26 12:43:34

标签: php sql-server

我不确定这是否可行,但我有一个名为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

我的问题是,我有没有办法将这两个查询结合起来,还是需要单独完成?我可以将结果从一个表中分组并将其用作查询另一个表的搜索条件吗?谢谢你帮我解决这个问题。 :)

2 个答案:

答案 0 :(得分:0)

这可能对你有所帮助 -

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

答案 1 :(得分:0)

尝试:

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>>