我需要执行查询、保存结果并在一个会话中多次重复使用它(类似于WITH
Oracle DB)。
这是我要保存的查询:
SELECT `event`.id, event.name
FROM attendant
INNER JOIN event ON attendant.fk_event = event.id
WHERE attendant.fk_user = 1
UNION
SELECT `event`.id, event.name
FROM organizer
INNER JOIN event ON organizer.fk_event = event.id
WHERE organizer.fk_user = 1
UNION
SELECT `event`.id, event.name
FROM invitation
INNER JOIN event ON invitation.fk_event = event.id
WHERE invitation.fk_user_to = 1
然后执行多个查询,如
SELECT id FROM savedquery WHERE .....
UNION
SELECT id FROM savedquery WHERE .....;
我找到了TEMPORARY TABLEs
,但我不认为我可以使用它,因为我需要在多个不同的用户运行事件请求时为他们执行此查询。
VIEW
也被命名,所以我想也有同样的问题。
请问最好的解决方案是什么?