mysql - SQL如何根据列值选择列
问题描述
我希望能够根据另一列中的值选择一列。举个简单的例子:从
Name Status Activities
A Full Tennis
B Discounted Badminton
C Full Badminton
和
Sport Full Discounted
Tennis 70 60
Badminton 110 90
我想输出:
Name Due
A 70
B 90
C 110
要连接前两个表,只需突出显示需要从另一列的值中选择一列。我存储数据的选择可能很糟糕。任何想法 ?
解决方案
您的数据存储选择很好,尽管id
在每个表中都有值并将人员表链接到会费id
值而不是名称上的会费表可能会更好。鉴于您的结构,您可以通过简单的方式获得所需的结果JOIN
:
SELECT p.Name
, CASE WHEN p.Status = 'Full' THEN d.Full ELSE d.Discounted END AS Due
FROM people p
JOIN dues d ON d.Sport = p.Activities
输出:
Name Due
A 70
B 90
C 110
推荐阅读
- perl - 在 Perl 中向串口发送下划线
- phpmyadmin - 删除 phpMyAdmin 中的表而不访问其内容
- linux - Linux - 计算超过一行的文件数
- javascript - 为什么 javascript 在 Gatsby 项目中的页面更改时不会触发?
- ios - 停止后台获取任务 iOS
- typescript - 在这些情况下“K 不能用于索引类型”的原因
- python - 如何在另一个模块中访问 Tkinter 窗口?
- javascript - getItemOrNullObject() 抛出 Permission denied 消息
- javascript - 使用 DomToImage 后背景图像捕获一半
- python-3.x - 消息:没有这样的元素:无法找到元素:{"method":"css selector","selector":".recaptcha-checkbox-border"}