Mesclando visualizações para atuar como uma única tabela com registros unidos
Pergunta
Eu tenho algumas tabelas dispostas assim:
+------------------------------------+
+ user_id | action_id | action_level +
+------------------------------------+
+ id_user | action_id | action_level +
+------------------------------------+
Como faço para criar uma visualização MySQL (ou talvez alguém possa sugerir uma opção melhor) onde elas funcionarão como uma única tabela:
+------------------------------------+
+ user_id | action_id | action_level +
+------------------------------------+
em vez de se juntar a ele, o que faz com que apareça assim:
+---------------------------------------------------------------------------------+
+ user_id | id_user | a_action_id | b_action_id | a_action_level | b_action_level +
+---------------------------------------------------------------------------------+
Dessa forma, quando eu fizer uma pesquisa na tabela, posso simplesmente pesquisar assim:
SELECT * FROM my_view WHERE action_id = 2;
Solução
Use um União
CREATE VIEW `user_actions` AS
SELECT a.user_id, a.action_id, a.action_level
UNION ALL
SELECT b.id_user AS user_id, b.action_id, b.action_level
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow