Estou com uma duvida referente a um banco de dado que estou criando (MYSQL). O problema é os seguinte:
Eu tenho uma tabela chamada TRABALHO que é minha tabela generalizada, e outras duas tabelas que são LIVRO e ARTIGO que são minhas especializações. Tanto a tabela LIVRO quanto a tabela ARTIGO devem herdar os dados da tabela TRABALHO, assim como no conceito de herança em programação.
Eu consegui criar a generalização e especialização nas tabela corretamente conforme (https://www.scriptbrasil.com.br/forum/topic/176130-resolvido-problema-com-generaliza%C3%A7%C3%A3oespecializa%C3%A722/), porem não estou conseguindo dar um select em todos os campos da tabela TRABALHO e todos os campos da tabela ARTIGO ou LIVRO, eu tentei o seguinte:
select *,
if(tra_tipo = 'livro', (
select * from livro;
),
select * from artigo;
) as tipo from trabalho;
porem quando rodo este comando me retorna um erro no console informando que o operador pode conter somente uma coluna, segue em anexo o erro. Existe alguma forma de realizar selecionar todos os campos da tabela TRABALHO e se o campo TRABALHO(tra_tipo) for igual a LIVRO selecionar todos os campos da tabela LIVRO, ou para ARTIGO selecionar todos os campos da tabela ARTIGO.
Desde já agradeço a atenção.
Editado por rafaelmarinho Imagem pequena anexei outra
Pergunta
rafaelmarinho
Caros, boa tarde.
Estou com uma duvida referente a um banco de dado que estou criando (MYSQL). O problema é os seguinte:
Eu tenho uma tabela chamada TRABALHO que é minha tabela generalizada, e outras duas tabelas que são LIVRO e ARTIGO que são minhas especializações. Tanto a tabela LIVRO quanto a tabela ARTIGO devem herdar os dados da tabela TRABALHO, assim como no conceito de herança em programação.
Eu consegui criar a generalização e especialização nas tabela corretamente conforme (https://www.scriptbrasil.com.br/forum/topic/176130-resolvido-problema-com-generaliza%C3%A7%C3%A3oespecializa%C3%A722/), porem não estou conseguindo dar um select em todos os campos da tabela TRABALHO e todos os campos da tabela ARTIGO ou LIVRO, eu tentei o seguinte:
select *,
if(tra_tipo = 'livro', (
select * from livro;
),
select * from artigo;
) as tipo from trabalho;
porem quando rodo este comando me retorna um erro no console informando que o operador pode conter somente uma coluna, segue em anexo o erro. Existe alguma forma de realizar selecionar todos os campos da tabela TRABALHO e se o campo TRABALHO(tra_tipo) for igual a LIVRO selecionar todos os campos da tabela LIVRO, ou para ARTIGO selecionar todos os campos da tabela ARTIGO.
Desde já agradeço a atenção.
Editado por rafaelmarinho
Imagem pequena anexei outra
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.