2012-09-10 19 views
12

Jak utworzyć widok łączący różne kolumny z inną tabelą? Mam trzy tabele na przykład: Użytkownicy, przedmiotów i prezentów (w tym przykładzie jest to system, który użytkownik może dać prezent do innego użytkownika)Tworzenie widoku MySQL dla dwóch tabel

users tabela zawiera informacje o użytkownikach, items tabela zawiera informacje na temat produktów i gifts stole pokazuje, który użytkownik wysłał prezent, do którego użytkownika.

Co chcę jest utworzyć widok jak następuje:

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

nie mogę dodać zdjęcia do pytania, więc są tu: 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

I jakie jest pytanie? –

+1

To jest w pierwszym zdaniu? –

Odpowiedz

17

Musisz połączyć trzy tabele pierwszy. Przykład

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

Zmieniono 'FROM gift a' na' FROM gifts a', pomyślałem, że wystąpił błąd literowy. I pojawia się błąd: '# 1054 - Nieznana kolumna 'b.users' w 'on klauzula'' –

+0

@ th0th to naprawdę literówka, powinno to być' a.user_from = b.id' i 'a.user_from = c .id' –

+0

Cóż, teraz robi dokładnie to, co próbuję zrobić. Dzięki. –

Powiązane problemy