如何从表中选择记录,其中记录具有来自另一个表的最相似属性

时间:2012-12-18 15:37:03

标签: php mysql

表A 结果选择
A a B a
B b
C a
C b
C c

表B

用户选择

1 a 1 b
2 b
2 c

表C
用户结果
1 B
2 C


我应该使用什么mysql查询,如果我想这样做:

如果用户选择结果是A B C(因为A B C在'select'列中有'a') 如果用户选择b,则结果为B C(因为A在'select'列中没有'b') 如果用户选择b c,则结果为C(因为C在'select'列中有'a b c') 如果用户选择b c,则结果为C(因为A'在'select'列中没有'c') 如果用户选择c,则结果为C(因为A'在'select'列中没有'c')

因此它将从用户选择的内容中选择最相似的记录,并忽略不匹配的其他记录。 对不起我的英语,我说的是bahasa ......

1 个答案:

答案 0 :(得分:0)

SELECT  `result`
FROM tableA
WHERE   `select` IN ('a','b','c')
GROUP BY result
HAVING COUNT(*) = 3

如果selectresult强制执行唯一约束,则需要DISTINCT

SELECT  `result`
FROM tableA
WHERE   `select` IN ('a','b','c')
GROUP BY result
HAVING COUNT(DISTINCT `select`) = 3