mysql中没有公共列的sql连接表

aelbi1ox  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(537)

我搜索了mysql中如何连接两个表的答案,但没有找到确切的答案。我有两张表,如下所示。
表用户详细信息

id empID   Name
1   001    Rhonda

表请求

id ticketNo  Details
1  00000123  {"userDetails":{"id":"1", "empID":"001", "Name":"Rhonda"}

现在我要做的是编写一个查询,当我搜索empid:001 i 希望表返回我特定empid的票号。但这里的问题是没有公共列,第二个问题是表请求中该用户的详细信息在列详细信息下。我被困在如何实现这一点。如果有人能帮忙的话,那就大有裨益了。提前谢谢。

wnrlj8wa

wnrlj8wa1#

你可以用 ->> 在修复json列格式(例如将其转换为表单)之后,连接条件中的运算符 {"userDetails":{"id":"1", "empID":"001", "Name":"Rhonda"}} :

SELECT ticketNo 
  FROM request r
  JOIN userDetails u
    ON r.Details ->> '$.userDetails.empID' = u.empID

演示
更新:也许,你可以尝试更换 u.empIDCONVERT(u.empID USING utf8) 或者 CONVERT(u.empID USING latin1) 为了抓住正确的校勘

相关问题