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

Php 如何从另一个表中记录具有最相似属性的表中选择记录,php,mysql,Php,Mysql,表A 结果选择 A B a B B C a C b 丙 表B 用户选择 1A 1b 2 b 2 c 表C 用户结果 1b 2 C 如果我想这样做,我应该使用什么mysql查询: 如果用户选择a,则结果为B C,因为B C在“选择”列中有“a” 如果用户选择b,则结果为b C,因为a在“选择”列中没有“b” 如果用户选择一个b c,则结果为c,因为c在“选择”列中有“a b c” 如果用户选择b c,则结果为c,因为A b在“选择”列中没有“c” 如果用户选择c,则结果为c,因为A B在“选择”列

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

表B

用户选择

1A 1b 2 b 2 c

表C 用户结果 1b 2 C 如果我想这样做,我应该使用什么mysql查询:

如果用户选择a,则结果为B C,因为B C在“选择”列中有“a” 如果用户选择b,则结果为b C,因为a在“选择”列中没有“b” 如果用户选择一个b c,则结果为c,因为c在“选择”列中有“a b c” 如果用户选择b c,则结果为c,因为A b在“选择”列中没有“c” 如果用户选择c,则结果为c,因为A B在“选择”列中没有“c”

因此,它将从用户选择的记录中选择最相似的记录,并忽略其他不匹配的记录。。 对不起我的英语,我会说巴哈萨语

SELECT  `result`
FROM tableA
WHERE   `select` IN ('a','b','c')
GROUP BY result
HAVING COUNT(*) = 3
如果没有对每个结果的select强制唯一约束,则需要一个DISTINCT

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

感谢您的快速响应,所以我必须使用have count???@duta yes,因为如果您不添加它,它将不会过滤所有与所有条件匹配的行。顺便问一下,tableB和tableC与您的问题有何关系?除了从表B将记录与表A匹配外,还有哪些用户选择插入表B,结果插入到表C中。。。