1

表 A
結果の選択
A a
B a
B b
C a
C b
C c

表 B

ユーザー選択

1a
1b
2b
2c

TABLE C
user result
1 B
2 C


次のようにしたい場合、どの mysql クエリを使用する必要がありますか。

ユーザーが a を選択した場合、結果は ABC になります (ABC の列 'select' に 'a' があるため) ユーザーが ab を選択した場合、結果は BC です (A の列 'select' に 'b' がないため) ユーザーが abc を選択した場合結果は C です (C の列 'select' に 'ab c' があるため) ユーザーが bc を選択した場合、結果は C になります (AB の列 'select' に 'c' がないため) ユーザーが c を選択した場合、結果は C ( AB の列「select」に「c」がないため)

そのため、ユーザーが選択したものから最も類似しているレコードが選択され、一致しない他のレコードは無視されます..私の英語で申し訳ありませんが、私はバハサを話します...

4

1 に答える 1

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

selectごとに一意性制約が適用されなかった場合はresult、aDISTINCTが必要です。

SELECT  `result`
FROM tableA
WHERE   `select` IN ('a','b','c')
GROUP BY result
HAVING COUNT(DISTINCT `select`) = 3
于 2012-12-18T15:39:55.933 に答える