我有两个牌桌和匹配:
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经验
答案 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;
获取视图的明确列名。