Ir ao conteúdo
  • Cadastre-se

Comando select em duas tabelas


Posts recomendados

Estrutura da tabela nome equipe

CREATE TABLE equipe (
   Num varchar(15) NOT NULL,
   Nome varchar(50) DEFAULT NULL,
   Nacionalidade varchar(40) DEFAULT NULL
)
---------------------------------------------------------
Estrutura da tabela `nome piloto`
CREATE TABLE piloto (
   Num varchar(15) NOT NULL,
   Nome varchar(50) DEFAULT NULL,
   sexo char(1) DEFAULT NULL,
   DtNascimento date DEFAULT NULL,
   pnacionalidade varchar(40) DEFAULT NULL,
  Num varchar(15) DEFAULT NULL
)
---------------------------------------------------------
Estrutura da tabela `circuito`
CREATE TABLE circuito(
   Num varchar(15) NOT NULL,
   Nome varchar(50) DEFAULT NULL,
   Cidade varchar(70) DEFAULT NULL,
   Pais varchar(50) DEFAULT NULL
)
---------------------------------------------------------
Estrutura da tabela `disputa`
CREATE TABLE disputa(
   CNum varchar(15) NOT NULL,
   ANum varchar(15) DEFAULT NULL,
   Pnum varchar(15) DEFAULT NULL,
   Data date DEFAULT NULL,
   Colocacao int(11) DEFAULT NULL,
   )

as chaves estrangeiras são:

alter table PILOTO add constraint estrangeira_EqNum foreign key EqNum references Equipe(EqNum);
alter table Corrida add constraint estrangeira_ANum foreign key ANum references Autodromo(ANum);
alter table Corrida add constraint estrangeira_PNum foreign key PNum references Piloto(Pnum);

 

agora preciso que o sql me retorne: Listar o Nome, Sexo e Nacionalidade dos pilotos que venceram as corridas entre os anos de 2000 e 2003,
de equipe cuja nacionalidade não seja Brasileira ou Africana.
 

meu código tá assim e não consigo terminar se alguém puder ajudar fico grata.

SELECT `Nome`, `sexo`, `pnacionalidade` FROM `piloto`
WHERE pnacionalidade NOT IN ('brasileira', 'africana')
union
SELECT Colocacao FROM Corrida Where Colocacao = 1 NOT IN ('2010','2013')

 

erro:

Mensagens do MySQL :

#1222 - Os comandos SELECT usados têm diferente número de colunas

Link para o comentário
Compartilhar em outros sites

  • mês depois...

Tenta assim

 

SELECT

piloto.nome AS NOME,
piloto.sexo AS SEXO,
piloto.pnacionalidade AS NACIONALIDADE


FROM piloto piloto where pnacionalidade NOT IN ('brasileira','africana')
INNER JOIN disputa disputa ON
piloto.num = disputa.pnum AND disputa.colocacao = 1 AND disputa.data BETWEEN '2000' AND '2003'

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...