mysql - MySQL 5.7 通过相同的 uid 但不同的关键字选择记录
问题描述
下表结构:
--------------------------------------------------
| ID | UID | KEYWORD |
--------------------------------------------------
| 1 | UID_12345 | AERZTE |
| 2 | UID_12345 | RADIOLOGIE |
| 3 | UID_12345 | RADIOAKTIV |
| 4 | UID_12346 | ARZT |
| 5 | UID_12346 | RADIOLOGIE |
--------------------------------------------------
现在我将选择关键字所在的两行:AERZTE 和 RADIOLOGIE,并且具有相同的 UID。我怎样才能做到这一点?
解决方案
您将需要对所需行进行条件聚合
select *
from test
where keyword in ('AERZTE','RADIOLOGIE')
and uid in (
select uid
from test
group by uid
having sum(case when keyword = 'AERZTE' then 1 else 0 end) > 0
and sum(case when keyword = 'RADIOLOGIE' then 1 else 0 end) > 0
)
推荐阅读
- r - 如何在带有地图的ggplot2中使用for循环?
- haskell - 带有布尔值的 Haskell 递归函数类型错误
- qt - Qt ui 文件 - xml 顺序 - QGridLayout 行顺序导致较大的提交差异
- html - 当内容宽度大于带有 inline-flex 的 div 中的视口宽度时,w3-CSS 附加换行符
- html - 有没有更好的方法来为具有递归/可重复属性的元素实现 CSS :nth-child?
- rtf - 如何计算 BIP rtf 模板中的百分比?
- flutter - 无法读取规范“integration_test”的许可文件“../LICENSE”
- angular - Jasmine 单元测试用例引发错误,因为无法读取 null 的属性“id”
- c++ - 如何从 std::vector 创建 pcl::PointIndices
在 C++ 中使用“pcl”(点云库)? - tensorflow - TensorFlow object_detection 保存和加载微调模型的正确方法