我的PSQL视图表出了什么问题?

时间:2016-10-14 20:12:55

标签: sql postgresql

我有两个牌桌和匹配:

CREATE TABLE player(
id serial PRIMARY KEY NOT NULL,
name varchar(255) NOT NULL
);

CREATE TABLE match(
id serial PRIMARY KEY,
winner serial REFERENCES player(id) NOT NULL,
loser serial REFERENCES player(id) NOT NULL CHECK (loser != winner)
);

CREATE SEQUENCE playerid_sequence
start 1
increment 1;

CREATE SEQUENCE matchid_sequence
start 1
increment 1;

我想创建一个连接两个表的视图表:

CREATE VIEW matchplayers AS
SELECT winner.name, loser.name, m.id 
from player winner, player loser, match m
WHERE m.winner = winner.id AND m.loser = loser.id;

但是它返回了一个错误,即“名称”已被多次提及。相当缺乏SQL经验

1 个答案:

答案 0 :(得分:5)

尝试

CREATE VIEW matchplayers AS
SELECT winner.name as winner_name, loser.name as loser_name, m.id 
from player winner, player loser, match m
WHERE m.winner = winner.id AND m.loser = loser.id;

获取视图的明确列名。