我已经搜索了有关如何在MYSQL中联接两个表的答案,而在Internet上却没有共同的专栏,但没有找到我所要查找的确切信息。所以我有两个表,如下所示。
TABLE userDetails
id empID Name
1 001 Rhonda
TABLE请求
id ticketNo Details
1 00000123 {"userDetails":{"id":"1", "empID":"001", "Name":"Rhonda"}
现在我想做的是编写一个查询,当我搜索empId:001时,我希望该表以该票证号返回该EMPID。但是这里的问题是,没有公共列,其次,表请求中该用户的详细信息位于详细信息列下。我对如何实现这一目标感到困惑。如果有人可以提供帮助,那将是极大的帮助。预先感谢。
答案 0 :(得分:2)
在修复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)
或CONVERT(u.empID USING latin1)
,以获取正确的排序规则