2017-01-27 4 views
1

私は、このコマンドを試してみましたが、それはより多くの出力数からその実際の「nomejogo」に選択の説明

「をequipas SELECT * FROM」に「idjogo」に変更しようとしたとき、私は問題を抱えています1行。

select nomeequipa, (select nomejogo from videojogo left join equipas on videojogo.idjogo = equipas.idjogo) from equipas; 

これは私のコードです:

drop table if exists videoequipa; 
drop table if exists equipas; 
drop table if exists videojogo; 


create table videojogo(
    idjogo   INTEGER(2) AUTO_INCREMENT primary key, 
    nomejogo  NVARCHAR(25), 
    genero   enum('fps','rpg','moba','sports') 
); 

create table equipas(
    idequipa  INTEGER(2) AUTO_INCREMENT primary key, 
    nomeequipa  NVARCHAR(25), 
    idjogo  INTEGER(2), 
    Constraint Fk001 foreign key (idjogo) references videojogo(idjogo) 
); 

create table videoequipa(
    idequipa  INTEGER(2), 
    idjogo   INTEGER(2), 
    primary key (idequipa,idjogo) 

); 


Insert into videojogo (nomejogo,genero) values ('Counter Strike','fps'); 
Insert into videojogo (nomejogo,genero) values ('League of Legends','moba'); 
Insert into videojogo (nomejogo,genero) values ('Dota 2','moba'); 
Insert into videojogo (nomejogo,genero) values ('Rocket League','sports'); 
Insert into videojogo (nomejogo,genero) values ('Overwatch','fps'); 



Insert into equipas (nomeequipa,idjogo) values ('Dignitas',1); 
Insert into equipas (nomeequipa,idjogo) values ('Fnatic',1); 
Insert into equipas (nomeequipa,idjogo) values ('Fnatic',2); 
Insert into equipas (nomeequipa,idjogo) values ('Flypside',4); 
Insert into equipas (nomeequipa,idjogo) values ('Titan',3); 
Insert into equipas (nomeequipa,idjogo) values ('Ninjas in Pijamas',1); 
Insert into equipas (nomeequipa,idjogo) values ('Titan',5); 
Insert into equipas (nomeequipa,idjogo) values ('Titan',3); 
Insert into equipas (nomeequipa,idjogo) values ('Dignitas',2); 

答えて

0

あなたはネストされたSELECTでleft joinを使用する必要はありません。以下は動作するはずです:

SELECT e.nomeequipa, v.genero 
FROM equipas e LEFT JOIN videojogo v ON e.idjogo = v.idjogo; 

ここSQL Fiddleです。