Question

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.

 

 

Sem título.png

 

tabela.png

Edited by rafaelmarinho
Imagem pequena anexei outra

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this