Создайте представление, которое объединяет данные из нескольких ячеек таблицы в один оракул. - PullRequest
0 голосов
/ 08 октября 2019

Мне нужно создать представление, которое объединит две таблицы (игра и разработчик) вместе и выберет gameID gameName и gameDeveloper из игрового стола и перенесет gameDeveloper с именем и фамилией (из таблицы разработчиков) в один столбец. gameDeveloper - это то же самое, что и developerID, но это специально не внешний ключ. Я хочу выбрать только имя и фамилию из строки, содержащей соответствующий идентификатор разработчика, и объединить их в одном столбце в моем новом представлении. Вот что у меня есть:

CREATE TABLE game (
gameID varchar(3) PRIMARY KEY NOT NULL,
gamenameName varchar(30) NOT NULL,
gameDeveloper varchar(3) NOT NULL
);

INSERT INTO game VALUES (1,'RDR2',2);
INSERT INTO game VALUES (2,'GTAV',7);
INSERT INTO game VALUES (3,'PUBG',9);
/
CREATE TABLE developers (
    developerID varchar(3) PRIMARY KEY NOT 
NULL,
    fname varchar(20) NOT NULL,
    lname varchar(20) NOT NULL,
    gameID varchar(3) NOT NULL,
    CONSTRAINT fk_game
    FOREIGN KEY (gameID)
    REFERENCES game (GameID)
);

INSERT INTO developers VALUES 
(1,'Patrick','Kane',1);
INSERT INTO developers VALUES 
(2,'Jonathan','Toews',1);
INSERT INTO developers VALUES 
(3,'Alex','Debrincat',1);
INSERT INTO developers VALUES 
(4,'Andrew','Shaw',2);
INSERT INTO developers VALUES 
(5,'Alex','Nylander',2);
INSERT INTO developers VALUES 
(6,'Oli','Maata',2);
INSERT INTO developers VALUES 
(7,'Calvin','DeHaan',2);
INSERT INTO developers VALUES 
(8,'Brandon','Saad',3);
INSERT INTO developers VALUES 
(9,'Corey','Crawford',3);
INSERT INTO developers VALUES 
(10,'Connor','Murphy',3);
/

CREATE OR REPLACE VIEW chairs AS
    SELECT firstname, lastname
    FROM developer
    INNER JOIN 

Я бы хотел, чтобы финальный стол выглядел примерно так с отображенной и объединенной последней ячейкой, но я так растерялся, что делать ... Я подумал, что внутреннее соединениебыть лучшим?

enter image description here

1 Ответ

2 голосов
/ 08 октября 2019

Вы можете сделать что-то вроде этого - JOIN эквивалентно INNER JOIN, но вы можете быть явным.

CREATE VIEW chairs 

AS

SELECT 
 g.gameID 
,g.gamenameName 
,d.fname + ' ' + lname AS gameDeveloper 
FROM game g 
JOIN developers d 
    ON g.gameDeveloper = d. developerID 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...