
您可以使用
GROUP BY和
HAVINg COUNT(*) = _:
SELECt contact_idFROM your_tableWHERe flag IN ('Volunteer', 'Uploaded', ...)GROUP BY contact_idHAVINg COUNT(*) = 2 -- // must match number in the WHERe flag IN (...) list(假设
contact_id, flag是唯一的)。
或使用联接:
SELECt T1.contact_idFROM your_table T1JOIN your_table T2 ON T1.contact_id = T2.contact_id AND T2.flag = 'Uploaded'-- // more joins if necessaryWHERe T1.flag = 'Volunteer'
如果标志列表很长并且有很多匹配项,则第一个可能更快。如果标志列表很短且匹配项很少,那么您可能会发现第二个更快。如果性能是一个问题,请尝试对您的数据进行测试以查看哪种效果最佳。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)