2012-09-10 31 views
12

¿Cómo puedo crear una vista que combine diferentes columnas con una tabla diferente? Tengo tres tablas por ejemplo: usuarios, artículos y regalos (en este ejemplo es un sistema que un usuario puede dar un regalo a otro usuario)MySQL create view que une dos tablas

users tabla tiene información sobre los usuarios, items tabla tiene información sobre los elementos y gifts mesa muestra qué usuario envió qué obsequio a qué usuario.

Lo que quiero es crear una vista como la siguiente:

user_from | user_to | gift_name | gift_price 
sally  | john | Teddy Bear | 10 
+0

no podía añadir imágenes a la pregunta, por lo que son aquí: http://i.stack.imgur.com/YCfAO.png http://i.stack.imgur.com/ 7AUhc.png http://i.stack.imgur.com/8W06W.png http://i.stack.imgur.com/forWs.png –

+1

¿Y cuál es la pregunta? –

+1

¿Está en la primera oración? –

Respuesta

17

debe unirse a las tres mesas en primer lugar. Ejemplo

CREATE VIEW GiftsList 
AS 
SELECT b.name user_from, 
     c.name user_to, 
     d.name gift_name, 
     d.price gift_price 
FROM gift a 
     INNER JOIN users b 
      ON a.user_from = b.id 
     INNER JOIN users c 
      ON a.user_from = c.id 
     INNER JOIN items d 
      ON a.item = d.id 
+0

Cambió 'FROM gift a' a' FROM gifts a', pensó que había un error tipográfico. Y obtengo el error: '# 1054 - Columna desconocida 'b.users' en 'on clause'' –

+0

@ th0th es realmente un error tipográfico, debería ser' a.user_from = b.id' y 'a.user_from = c .id' –

+0

Bueno, ahora hace exactamente lo que intento hacer. Gracias. –