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