我正在为网站实施标记系统。每个对象有多个标签,每个标签有多个对象。这是通过维护一个表,每个记录有两个值,一个用于对象的ID和标记。SQL多对多匹配
我正在寻找编写查询来查找匹配给定标记集的对象。假设我有如下数据(在[对象] - > [标签] *格式)
apple -> fruit red food
banana -> fruit yellow food
cheese -> yellow food
firetruck -> vehicle red
如果我想匹配(红色),我应该得到苹果和救火车。如果我想匹配(水果,食物),我应该得到(苹果,香蕉)。
如何编写SQL查询做我想做的事?
@Jeremy Ruten,
感谢您的回答。使用的符号用于给出一些示例数据 - 我的数据库确实有一个表,每个记录有1个对象ID和1个标记。
其次,我的问题是我需要获取所有匹配所有标签的对象。用你的OR代替AND,如下所示:
SELECT object WHERE tag = 'fruit' AND tag = 'food';
运行时不产生任何结果。
你用什么RDBMS? 如何你需要做的这个实施?一个存储过程?你想如何传递参数? 或者你会被动态构成SQL数据库管理系统之外?在这种情况下,使用什么编程语言? – van 2009-05-26 22:31:36