我有一個名為“profile_features”的大型 MySQL 垂直表,如下所示:
| ID | Profile_id | 特征標識 | 價值 |
|---|---|---|---|
| 1 | 1 | 1 | 瑞克 |
| 2 | 1 | 2 | 諾瓦克 |
| 3 | 5 | 3 | 5428 |
| 4 | 5 | 1 | 喬 |
| ... | ... | ... | ... |
(上表是所有資料的一小部分)
如何找到具有以下所有條件的特定 Profile_id:(滿足第一個和第二個和第三個條件)。我想要所有 profile_ids 作為結果。
profile_id FROM profile_features WHERE( feature_id IN(2, 64, 90, 38, 73, 115) AND value ='Joe')
AND
profile_id FROM profile_features WHERE( feature_id IN(1, 55, 86, 23, 72, 114) AND value ='US')
AND
profile_id FROM profile_features WHERE( feature_id IN(4, 59, 98, 43, 78, 120) AND value ='54782')
uj5u.com熱心網友回復:
按組態檔聚合,然后在HAVING子句中使用三個單獨的斷言作為您的標準:
SELECT profile_id
FROM profile_features
GROUP BY profile_id
HAVING SUM(feature_id IN (2, 64, 90, 38, 73, 115) AND value = 'Joe') > 0 AND
SUM(feature_id IN (1, 55, 86, 23, 72, 114) AND value = 'US') > 0 AND
SUM(feature_id IN (4, 59, 98, 43, 78, 120) AND value = '54782') > 0;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/408277.html
標籤:
