作为一项训练练习,我正在研究一个类似于英雄联盟的虚构SQLite数据库,并且我需要执行左外连接以获取所有玩家的表格,并且如果他们的皮肤不是称为'Classic'
,也归还这些。SQLite外连接列过滤
我现在有这个疑问:
SELECT * FROM players
LEFT OUTER JOIN (SELECT * FROM playerchampions WHERE NOT championskin = 'Classic')
ON name = playername
它返回我所寻找的,但也有很多我不希望列(玩家体验,玩家IP,玩家RP的,playername在playerchampions
。表两个表的代码如下:
CREATE TABLE players (
name TEXT PRIMARY KEY,
experience INTEGER,
currencyip INTEGER,
currencyrp INTEGER
);
CREATE TABLE playerchampions (
playername TEXT REFERENCES players (name) ON UPDATE CASCADE,
championname TEXT REFERENCES champions (name) ON UPDATE CASCADE,
championskin TEXT REFERENCES skins (skinname) ON UPDATE CASCADE,
PRIMARY KEY (playername, championname, championskin)
);
正如我所说的,执行查询,但我不能使用SELECT players.name,playerchampions.championname,playerchampions.championskin作为playerchampions列没有给出他们适当的表名whe n返回。
我该如何解决这个问题?
谢谢,这是招的确,刚需Ç .championname too – Wolf 2013-04-10 10:59:53
很高兴我可以帮助:) – BobTheBuilder 2013-04-10 11:02:11