2012-09-10 4 views
12

Wie kann ich eine Ansicht erstellen, die verschiedene Spalten mit einer anderen Tabelle zusammenführt? Ich habe drei Tabellen zum Beispiel: Benutzer, Gegenstände und Geschenke (in diesem Beispiel ist es ein System, das ein Benutzer ein Geschenk an einem anderen Benutzer geben kann)MySQL create view verbindet zwei Tabellen

users Tabelle Informationen über Benutzer, hat items Tabelle Informationen über Produkte und gifts Tisch zeigt an, welcher Benutzer welches Geschenk an welchen Benutzer gesendet hat.

Was ich will, ist eine Ansicht zu erstellen, wie folgt vor:

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

Ich konnte keine Bilder hinzufügen, in Frage zu stellen, so dass sie hier: 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

Und was ist die Frage? –

+1

Es ist im ersten Satz? –

Antwort

17

Sie müssen zuerst die drei Tabellen verbinden. Beispiel

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

Geändert 'VON Geschenk a' zu 'VON Geschenken a', dachte es gab einen Tippfehler. Und ich bekomme einen Fehler: '# 1054 - Unbekannte Spalte 'b.users' in 'on clause'' –

+0

@ th0th es ist wirklich ein Tippfehler, es sollte' a.user_from = b.id' und 'a.user_from = c sein .id' –

+0

Nun, jetzt macht genau das, was ich versuche zu tun. Vielen Dank. –