mysql - 在 MySQL 中选择项目
问题描述
我想选择已支付状态的书名
但是如果没有状态为已付款的书名,则显示其他状态为其他书名
ITEMS
ID bookname code
1 cats 222
2 dogs 555
3 cows 777
4 goat 888
5 rubbit 999
PRODUCTS
ID booktitle status
1 222 paid
2 555 paid
3 777 notpyed
4 888 waitpyed
5 999 notmoney
询问
SELECT
snd.code, m.booktitle FROM
products as m
JOIN items as snd ON snd.code = m.booktitle WHERE CASE WHEN (m.status = 'paid') > 0 THEN m.status = 'paid' ELSE m.status = 'notpyed' OR m.status = 'waitpyed'
OR m.status = 'notmoney' END
解决方案
您使用子查询来获取已付图书的总和
else 部分可能是m.status <> 'paid'
,但我不知道你有多少 sti
SELECT snd.code, m.booktitle FROM PRODUCTS as m JOIN ITEMS as snd ON snd.code = m.booktitle WHERE CASE WHEN (SELECT SUM(status = 'paid') FROM PRODUCTS) > 0 THEN m.status = 'paid' ELSE m.status = 'notpyed' OR m.status = 'waitpyed' OR m.status = 'notmoney' END
代码 | 书名 ---: | --------: 222 | 222 555 | 555
db<>在这里摆弄
推荐阅读
- swift - NSManagedObjectID 与自定义 UUID 标识符属性 - 获取性能
- javascript - 在 package.json 中使用变量
- python - Python中日期错误年份的转换
- javascript - 无法将单击事件附加到 JQuery 中的按钮
- c++ - 2D“游戏”开发:游戏逻辑和绘图的坐标
- java - 使用不受 Spring 管理的静态方法初始化类
- hyperledger-fabric - 管理员身份的链码调用不在通道配置中
- javascript - 对象内的Javascript数组
- typescript - 使用 rxjs/Typescript 在来自外部 API 的响应中映射数组
- java - 重构遗留代码所需的建议