连接 MYSQL 中没有公共列的表
Joining tables in MYSQL without a common column
我在互联网上搜索了关于如何在 MYSQL 中加入两个 table 而没有公共栏的答案,但没有找到我正在寻找的内容。所以我有两个 table 如下所示。
TABLE 用户详情
id empID Name
1 001 Rhonda
TABLE请求
id ticketNo Details
1 00000123 {"userDetails":{"id":"1", "empID":"001", "Name":"Rhonda"}
现在我想做的是我想写一个查询,当我搜索 empId:001 我想要 table returns 我和那个特定的票号EMPID。但这里的问题是没有公共列,其次 Table 请求中该用户的详细信息位于 详细信息 列下。我对如何实现这一目标感到困惑。如果有人可以帮忙,那将是很大的帮助。提前致谢。
固定 JSON 列格式后,您可以在 JOIN 条件中使用 ->>
运算符,例如
将其转换为 {"userDetails":{"id":"1", "empID":"001", "Name":"Rhonda"}}
:
形式
SELECT ticketNo
FROM request r
JOIN userDetails u
ON r.Details ->> '$.userDetails.empID' = u.empID
Update :也许,您可以尝试将 u.empID
替换为 CONVERT(u.empID USING utf8)
或 CONVERT(u.empID USING latin1)
以获得正确的排序规则
我在互联网上搜索了关于如何在 MYSQL 中加入两个 table 而没有公共栏的答案,但没有找到我正在寻找的内容。所以我有两个 table 如下所示。
TABLE 用户详情
id empID Name
1 001 Rhonda
TABLE请求
id ticketNo Details
1 00000123 {"userDetails":{"id":"1", "empID":"001", "Name":"Rhonda"}
现在我想做的是我想写一个查询,当我搜索 empId:001 我想要 table returns 我和那个特定的票号EMPID。但这里的问题是没有公共列,其次 Table 请求中该用户的详细信息位于 详细信息 列下。我对如何实现这一目标感到困惑。如果有人可以帮忙,那将是很大的帮助。提前致谢。
固定 JSON 列格式后,您可以在 JOIN 条件中使用 ->>
运算符,例如
将其转换为 {"userDetails":{"id":"1", "empID":"001", "Name":"Rhonda"}}
:
SELECT ticketNo
FROM request r
JOIN userDetails u
ON r.Details ->> '$.userDetails.empID' = u.empID
Update :也许,您可以尝试将 u.empID
替换为 CONVERT(u.empID USING utf8)
或 CONVERT(u.empID USING latin1)
以获得正确的排序规则