mysql - MySQL更新表列比较两个表
问题描述
Users table has following columns
-----------------------------------
Users isMember
A Yes
B Yes
C Yes
X Yes
Y Yes
Z Yes
ValidSubcription table the following details
-------------------------
Users isSubActive
A Yes
X Yes
Y Yes
现在,基于此详细信息,我想更改 Users 表中的 isMember 列,并将 ValidSubscription 表中不存在的用户从 Yes 设置为 No。
output should be like this
Users isMember
A Yes
B No
C No
X Yes
Y Yes
Z No
解决方案
您可以使用 更新您的表LEFT JOIN
,这将更新 Users 表中的所有行,即使它们在 ValidSubscription 表中没有相应的行。
isMember 的更新使用COALESCE
which 将使用 isSubActive 的值(如果该行存在),如果不存在则使用“否”。
UPDATE Users u
LEFT JOIN ValidSubscription s
ON u.Users = s.Users
SET isMember = COALESCE(isSubActive, 'No')
...并且始终,在运行互联网上随机人员提供给您的更新之前备份您的数据;)
推荐阅读
- python - RuntimeError: Expected object of scalar type Double but got scalar type Float for argument #2
- python - Pyinstaller 在不存在的文件夹中搜索
- excel - 如何在 Mac 上保存 Excel JS 加载项授权令牌(Excel JS 加载项)?
- java - 掷骰子游戏问题
- c# - Web 服务无法返回完整的 json
- php - 如何在 PHP 中实现 AES 128 ECB?
- ios - 在 SwiftUI 中从 ViewModel 访问 EnvironmentObject
- java - 如何以编程方式更改 Android Toggle/LabeledSwitch 边框颜色?
- c++ - WaitCommTimeout() 错误87“参数无效”等事项
- arrays - RPG YAJL 解析数组内的数组