获取两个表之间的相关行的方法
P粉976737101
P粉976737101 2023-09-14 23:53:48
[MySQL讨论组]

我的表格:

表格1
练习

| primaryMuscleGroup | motionName           |
| ------------------ | -------------- ------|
| 胸部               | 双杠臂屈伸           |
| 胸部               | 卧推                 |
| 胸部               | 俯卧撑               |
| 胸部               | 飞鸟                 |
| 腿部               | 深蹲                 |
| 腿部               | 弓步                 |
| 背部               | 硬拉                 |

表格2
健身记录

| name               | motionName           |
| ------------------ | -------------- ------|
| 约翰·史密斯         | 双杠臂屈伸           |
| 莎莉               | 深蹲                 |
| 华莱士             | 弓步                 |
| 克里斯托夫         | 硬拉                 |

查询应该返回一个人没有做过的肌肉群的所有练习。例如,如果我们为客户“约翰·史密斯”运行查询,我们应该返回:

| primaryMuscleGroup | motionName           |
| 腿部               | 深蹲                 |
| 腿部               | 弓步                 |
| 背部               | 硬拉                 |

如果我们为客户“莎莉”运行查询,我们应该返回:

| primaryMuscleGroup | motionName           |
| ------------------ | -------------- ------|
| 胸部               | 双杠臂屈伸           |
| 胸部               | 卧推                 |
| 胸部               | 俯卧撑               |
| 胸部               | 飞鸟                 |
| 背部               | 硬拉                 |

P粉976737101
P粉976737101

全部回复(1)
P粉642919823

您可以使用外连接或者使用not exists来实现,看看下面的查询是否符合您的需求:

select * 
from exercises e
where not exists (
  select * from exercises x 
    where exists (
      select * from fitnessRecords fr
      where fr.name = 'john smith' and fr.motionName = x.motionName
    ) and x.primaryMuscleGroup = e.primaryMuscleGroup
)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号