簡體   English   中英

如何從表中選擇記錄,其中記錄具有與另一個表最相似的屬性

[英]how to select record from table where record have the most similar attribute from another table

表A
結果選擇
a
a
b
a

表B

用戶選擇

1個
1例
2例
2點

表C
用戶結果
1個
2℃


如果我想這樣做,我應該使用什么mysql查詢:

如果用戶選擇一個結果,則結果為ABC(因為ABC在“選擇”列中有“ a”);如果用戶選擇a,則結果是BC(因為A在“選擇”列中沒有“ b”);如果用戶選擇了abc,則如果用戶選擇bc,則結果為C(因為C在“選擇”列中具有“ abc”),如果用戶選擇b,則結果為C(因為AB在“選擇”列中不具有“ c”),如果用戶選擇c,則結果為C(因為AB在“選擇”列中沒有“ c”)

因此它將從用戶選擇的內容中選擇最相似的記錄,而忽略其他不匹配的記錄..對不起我的英語,我說巴哈薩語...

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

如果沒有對每個result select施加唯一約束,則需要DISTINCT

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM