MySQL создает представление, соединяющее две таблицы
Как создать представление, объединяющее разные столбцы с другой таблицей? У меня есть три таблицы, например: пользователи, предметы и подарки (в этом примере это система, которую пользователь может дать подарок другому пользователю)
users
таблица содержит информацию о пользователях, таблица items
содержит информацию об элементах, а таблица gifts
показывает, какой пользователь отправил какой подарок пользователю.
Я хочу создать представление, подобное следующему:
user_from | user_to | gift_name | gift_price
sally | john | Teddy Bear | 10
Ответы
Ответ 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 должно гарантировать, что вывод не повторяется.