Подтвердить что ты не робот

MySQL создает представление, соединяющее две таблицы

Как создать представление, объединяющее разные столбцы с другой таблицей? У меня есть три таблицы, например: пользователи, предметы и подарки (в этом примере это система, которую пользователь может дать подарок другому пользователю)

users таблица содержит информацию о пользователях, таблица items содержит информацию об элементах, а таблица gifts показывает, какой пользователь отправил какой подарок пользователю.

Я хочу создать представление, подобное следующему:

user_from | user_to | gift_name  | gift_price
sally     | john    | Teddy Bear | 10
4b9b3361

Ответ 1

Сначала вы должны присоединиться к трем таблицам. Пример

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

Ответ 2

Вы можете создать представление с двумя таблицами, такими как:

 CREATE VIEW giftList AS
 SELECT users.user_from,users.user_to,gifts.gift_name,gifts.gift_price FROM users,gifts
 WHERE users.user_id = gifts.user_id;

Предложение where должно гарантировать, что вывод не повторяется.