Fusion de vues pour agir comme une table unique avec United Records
Question
J'ai quelques tables qui sont aménagées comme ceci:
+------------------------------------+
+ user_id | action_id | action_level +
+------------------------------------+
+ id_user | action_id | action_level +
+------------------------------------+
Comment créer une vue MySQL (ou peut-être que quelqu'un pourrait suggérer une meilleure option) où ils agiront comme une table unique:
+------------------------------------+
+ user_id | action_id | action_level +
+------------------------------------+
au lieu de le rejoindre, ce qui le fait apparaître comme ceci:
+---------------------------------------------------------------------------------+
+ user_id | id_user | a_action_id | b_action_id | a_action_level | b_action_level +
+---------------------------------------------------------------------------------+
De cette façon quand je cours une recherche contre la table, je peux simplement rechercher comme ceci:
SELECT * FROM my_view WHERE action_id = 2;
La solution
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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow