2012-09-10 36 views
12

異なるテーブルと異なるカラムをマージするビューを作成するにはどうすればよいですか?私は、例えば3つのテーブルがあります:ユーザー、アイテムやギフト(この例では、ユーザが他のユーザに贈り物を与えることができるシステムです)MySQLが2つのテーブルを結合するビューを作成

usersテーブルには、ユーザーに関する情報を持っているが、itemsの表は、アイテムとgiftsテーブルに関する情報を持っていますどのユーザーがどの贈り物をどのユーザーに送信したかを示します。私が欲しいもの

は、次のようにビューを作成することです:

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

は、私が質問した画像を追加することができませんでしたので、彼らはここにある: 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

質問は何ですか? –

+1

最初の文にはありますか? –

答えて

17

あなたが最初の3つのテーブルを結合する必要があります。例

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

'FROM gift a'を' FROM gifts a'に変更しました。タイプミスがあると思いました。そして、私はエラーが発生します: '#1054 - 不明な列 'b.users' on節 ' –

+0

@ th0thそれは本当にタイプミスです、' a.user_from = b.id'と 'a.user_from = c .id' –

+0

さて、今私がしようとしていることを正確に実行します。ありがとう。 –

関連する問題