SQL 多对多关系 筛选 性能

来源:百度知道 编辑:UC知道 时间:2024/05/15 04:50:49
项目需求:(栏目较多)
后台:给出栏目多选框,让一个文章可以同时发布到N个栏目上显示
前台:给出栏目多选框,筛选出同时发布于某几个栏目上的文章

栏目表:
栏目_编号 栏目_名称

文章表:
文章_编号 文章_标题 ...

关系表:栏目_文章
栏目_编号 文章_编号
(以上两个字段共同构成唯一主键)

SELECT min(文章_编号) FROM 栏目_文章 WHERE
文章_编号 in (SELECT 文章_编号 FROM 栏目_文章 WHERE 栏目_编号 = 1) AND
文章_编号 in (SELECT 文章_编号 FROM 栏目_文章 WHERE 栏目_编号 = 2) AND
文章_编号 in (SELECT 文章_编号 FROM 栏目_文章 WHERE 栏目_编号 = 3)

现通过以上方法实现功能```
不知道是否合理```(起名是否合理不在讨论范围)
希望大家多给意见```但请详细说明理由```
问题已经解决

select 文章编号 from 栏目_文章 abc where 文章编号 in ( select top 1 文章编号 from 栏目文章 where 文章编号=abc.栏目编号) order by 栏目编号.id asc

44

select 文章_编号 from 栏目_文章 WHERE 文章_编号 in(1,2,3) group by 文章_编号 having count(文章_编号)>2

还可以吧
感觉你还是使用拼音或英文做字段名,不推荐使用汉字。