表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 ......
答案 0 :(得分:0)
SELECT `result`
FROM tableA
WHERE `select` IN ('a','b','c')
GROUP BY result
HAVING COUNT(*) = 3
如果select
对result
强制执行唯一约束,则需要DISTINCT
。
SELECT `result`
FROM tableA
WHERE `select` IN ('a','b','c')
GROUP BY result
HAVING COUNT(DISTINCT `select`) = 3