0

我正在尝试从表 1(报告)中获取所有结果,并将其他两个表加入其中(用户)和(工作订单)

报告具有与用户和工作订单相关的键,但它们存储在 csv 值中。我正在尝试执行类似于此伪代码的操作

`SELECT * 
FROM reports 
LEFT JOIN users ON reports = (WHERE users.userID IN (reports.users))
LEFT JOIN workorders ON reports = (WHERE workorder.status IN (reports.filters) 
AND reports.reportid = 10
`

报告.用户和报告.过滤器看起来像“1,2,3,4,5,6”

4

1 回答 1

1

如果我理解正确(意思是reports.usersreports.filters是逗号分隔值的字符串),你需要这个FIND_IN_SET函数:

SELECT * from reports 
LEFT JOIN users ON FIND_IN_SET(users.userID, reports.users)
LEFT JOIN workorders ON FIND_IN_SET(workorder.status, reports.filters) 
  AND reports.reportid = 10
于 2013-06-06T18:12:08.200 回答