sql查询问题,一个标签表和产品表,多对多的关系,怎么查询同时关联多个标签的产品集合?

比如有标签A,B,C,A关联产品1、2、3,B关联2、3,C关联2、3、4,怎查询出同时关联了ABC的产品?比如有标签A,B,C,产品1,2,3,4,A关联1、2、3,B... 比如有标签A,B,C,A关联产品1、2、3,B关联2、3,C关联2、3、4,怎查询出同时关联了ABC的产品?
比如有标签A,B,C,产品1,2,3,4,A关联1、2、3,B关联2、3,C关联2、3、4,
标签关联表,包括标签ID和产品ID两个字段,记录标签和产品的关联,比如
A 1,A 2,A 3,B 2,B 3,C 2,C 3,C 4,标签ABC都关联了产品2,如何通过Sql语句把这个同时关联了标签ABC的产品2查询出来?
展开
 我来答
c6iz
2012-08-11 · TA获得超过1417个赞
知道大有可为答主
回答量:1426
采纳率:100%
帮助的人:1044万
展开全部
查询这个比较简单使用DISTINCT,只要把两张表联给在一起,它可以让产品只显示一次不重复
select DISTINCT 产品 from 标签表,产品表 where 关连条件.....
创作者zUzVB1Sl31
2012-08-11 · 编程类资料、英语学习资料
创作者zUzVB1Sl31
采纳数:1331 获赞数:5975

向TA提问 私信TA
展开全部
用匹配查询,把标签表和查品表完全匹配,产品ID和标签ID是不是一个属性?语句如下:
Select * From 产品表 Inner Join 标签表 on 产品表.产品ID=标签表.标签ID Where 产品表.ID IS NOT NULL;
意思是把产品表和标签表里面ID字段完全对应地匹配起来,放在一个表里,这句要求你产品ID和标签ID一样,如果不一样,最起码要有点关系。比如:
表1:
ID | 字段1
----------------------
0152401 | 0000
-------------------------
0152302 | 5555
--------------------------
表2:
ID | 字段1
----------------------
52401 | 0000
-------------------------
52302 | 5555
--------------------------
表2.ID和表1.ID的关系就是:
right(表1.ID,5)=表2.ID
我相信你两个表之间一定有一个字段有关系,那就用取位函数来实现匹配吧 。
不重复出现相同的行,(要完全相同的行)就在SELECT 后面加个关键字
Distinct
语法:
Select Distinct 字段 From 表名;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1354349523q
2012-08-11 · TA获得超过105个赞
知道答主
回答量:281
采纳率:0%
帮助的人:125万
展开全部
select 产品名1,2,3,4
from 表1 join 表二 on 表1.列名=表二.列名 join 表三 on 表1.列名=表三.列名....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式