mysql - 在没有公共列的情况下连接 MYSQL 中的表
问题描述
我已经搜索了有关如何在没有公共列的情况下在 MYSQL 中加入两个表的答案,但没有找到我正在寻找的确切内容。所以我有两个表,如下所示。
TABLE用户详情
id empID Name
1 001 Rhonda
表请求
id ticketNo Details
1 00000123 {"userDetails":{"id":"1", "empID":"001", "Name":"Rhonda"}
现在我要做的是编写一个查询,当我搜索 empId:001 时,我希望该表返回该特定 EMPID 的票号。但是这里的问题是没有公共列,其次是 Table Request 中该用户的详细信息在列详细信息下。我对如何实现这一目标感到困惑。如果有人可以提供帮助,那将是很大的帮助。提前致谢。
解决方案
->>
在修复 JSON 列格式(例如将其转换为表单)后,您可以在 JOIN 条件中使用运算符{"userDetails":{"id":"1", "empID":"001", "Name":"Rhonda"}}
:
SELECT ticketNo
FROM request r
JOIN userDetails u
ON r.Details ->> '$.userDetails.empID' = u.empID
更新:也许,您可以尝试替换u.empID
为CONVERT(u.empID USING utf8)
orCONVERT(u.empID USING latin1)
以获取正确的排序规则
推荐阅读
- c++ - 如何以简单的方式更改堆上 QVector 数组中包含的对象的值?
- python - 正则表达式查找带有下划线和可选扩展名的文件
- google-cloud-platform - Google Cloud Storage 网络托管:将 http 重定向到 https
- google-sheets - 我可以使用电子表格更新 Google 表单问题吗?
- reactjs - TypeError:compiler.plugin 不是 ReactLoadablePlugin.apply 的函数
- python - 如何在 DRF 模型字段中仅显示和使用日期时间中的天数并发送请求以填充该字段
- python - 使用 SELECT 语句执行值
- apache - 403 Forbidden In Asp.Net Core app with Apache
- sql - isnull 和列创建
- python - 如何使用从另一个类获得的值刷新/重新初始化一个类?