我所拥有的是3个表格(已加星标的ID可能为空):
ITEMS
id|name|cost
EVENTS
id|name|date|assignment|items
ASSIGNMENTS
id|name|start|items
其中ITEMS
包含成本行 - 事件可能花费X,拥有该事件的任务/项目可能有自己的成本。事件和分配表中的所有项目都以逗号分隔的ID列表引用。
鉴于作业,我想
ASSIGNMENTS.NAME|EVENTS.NAME|ITEMS.NAME|ITEMS.COST
Assignment A management 10.00
Assignment A event A travel exp 60.00
Assignment A event A day cost 100.00
Assignment A event B day cost 90.00
我尝试了子查询方式,构建一个子查询,返回带有
的Items列表SELECT assignments.name, events.name,
concat(events.items, ",", assignments.items)
FROM assignments left join events
ON find_in_set(events.assignment, assignments.id) where assignments.id=2
但是这样我会将分配项目列出两次,最糟糕的是,我会得到一行(没有事件的作业),并以逗号开头。
我也尝试过两次加入同一张桌子,但后来MySQL记得我不能这样做。
关于如何解决这个问题的任何想法?
答案 0 :(得分:0)
试试这种方式
SELECT assignments.name, events.name,
concat(events.items, ",", assignments.items)
FROM assignments left join events
ON events.assignment = assignments.id
where assignments.id=2