Domanda

Ho un paio di tavoli che sono disposti come questo:

+------------------------------------+
+ user_id | action_id | action_level +
+------------------------------------+
+ id_user | action_id | action_level +
+------------------------------------+
.

Come posso creare una vista mysql (o forse qualcuno potrebbe suggerire un'opzione migliore) dove questi fungono da tavolo singolo:

+------------------------------------+
+ user_id | action_id | action_level +
+------------------------------------+
.

Invece di unirti a farlo, il che lo rende mostrato come questo:

+---------------------------------------------------------------------------------+
+ user_id | id_user | a_action_id | b_action_id | a_action_level | b_action_level +
+---------------------------------------------------------------------------------+
.

In questo modo quando corro una ricerca contro la tabella, posso semplicemente cercare come questa:

SELECT * FROM my_view WHERE action_id = 2;
.

È stato utile?

Soluzione

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top