Fusionando puntos de vista para actuar como una sola mesa con United Records
Pregunta
Tengo un par de mesas que están distribuidas como esta:
+------------------------------------+
+ user_id | action_id | action_level +
+------------------------------------+
+ id_user | action_id | action_level +
+------------------------------------+
¿Cómo creo una vista MySQL (o tal vez alguien podría sugerir una mejor opción) donde estos actuarán como una sola tabla:
+------------------------------------+
+ user_id | action_id | action_level +
+------------------------------------+
en lugar de unirlo, lo que lo hace aparecer así:
+---------------------------------------------------------------------------------+
+ user_id | id_user | a_action_id | b_action_id | a_action_level | b_action_level +
+---------------------------------------------------------------------------------+
De esa manera, cuando ejecuto una búsqueda contra la tabla, simplemente puedo buscar esto:
SELECT * FROM my_view WHERE action_id = 2;
Solución
Use a union
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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow