我正在编写一个报告脚本,其中报告字段并不总是固定的。管理员可以添加/删除/修改字段。我已经为此创建了下表,
报告
id user_id csp_id date
1 1 1 2018-10-09
2 1 1 2018-10-10
3 2 2 2018-10-09
4 2 2 2018-10-10
报表\元\字段
meta_id display_name type default_value
csp_address CSP address text
csp_name CSP Name text
报告\元\值
report_id user_id meta_id meta_value
1 1 csp_address Shivmandir
1 1 csp_name Shiv CSP
2 1 csp_address Matigara
2 1 csp_name Mat CSP
3 2 csp_address Darjeeling
3 2 csp_name Dar CSP
4 2 csp_address Gangtok
4 2 csp_name Gang CSP
这是如何日期需要显示在前端,我还需要与日期,csp\ U名称等排序
id user_id csp_id date csp_name csp_adress
1 1 1 2018-10-09 Shiv CSP Shivmandir
2 1 1 2018-10-10 Mat CSP Matigara
3 2 2 2018-10-09 Dar CSP Darjeeling
4 2 2 2018-10-10 Gang CSP Gangtok
我试过这个sql,但这不是我要找的
SELECT reports.*, reports_meta_values.meta_id, reports_meta_values.meta_value FROM reports
INNER JOIN reports_meta_values WHERE reports.id = reports_meta_values.report_id
id user_id csp_id date meta_id meta_value
1 1 1 2018-10-09 csp_address Shivmandir
1 1 1 2018-10-09 csp_name Shiv CSP
2 1 1 2018-10-10 csp_address Matigara
2 1 1 2018-10-10 csp_name Mat CSP
3 2 2 2018-10-09 csp_address Darjeeling
3 2 2 2018-10-09 csp_name Dar CSP
4 2 2 2018-10-09 csp_address Gangtok
4 2 2 2018-10-09 csp_name Gang CSP
我在寻找一个在mysql或php如何解决这个问题的建议。谢谢!
2条答案
按热度按时间ulydmbyx1#
我自己找到了答案,这应该是以适当的结构显示数据的sql,
谢谢!
xwbd5t1u2#
我花了一点时间在数据库中进行设置,但您应该使用两个
INNER JOIN
s来区分meta\u值,然后根据需要排序。