SQL - IDENTIFICAR TABELA
Boa tarde!
Eu tenho duas tabelas onde irei fazer um SELECT UNION. Elas, claro, têm campos com os mesmos nomes e campos com nomes únicos.
Preciso identificar de qual tabela vêm os dados.
é possÃvel?
Abs.
Eu tenho duas tabelas onde irei fazer um SELECT UNION. Elas, claro, têm campos com os mesmos nomes e campos com nomes únicos.
Preciso identificar de qual tabela vêm os dados.
é possÃvel?
Abs.
Sim, tem, claro. Por meio da mesma instrução sql de UNION que você usa.
Por exemplo, digamos que você possui os três campos em comum: Nome, Sobrenome e Nascimento, você pode complementar sua consulta como abaixo:
A consulta resultante terá 4 campos, sendo o conteúdo do campo [Ô]Tabela[Ô] a identidade de suas tabelas.
Por exemplo, digamos que você possui os três campos em comum: Nome, Sobrenome e Nascimento, você pode complementar sua consulta como abaixo:
SELECT Nome, Sobrenome, Nascimento, [ô]Tabela1[ô] As Tabela FROM minhaTabela1 UNION
SELECT Nome, Sobrenome, Nascimento, [ô]Tabela2[ô] As Tabela FROM minhaTabela1;
A consulta resultante terá 4 campos, sendo o conteúdo do campo [Ô]Tabela[Ô] a identidade de suas tabelas.
Boa tarde Professor!
Na verdade o que eu preciso é identificar a qual tabela pertence o registro.
Por exemplo, supondo que ambas as tabelas só tem um nome, sobrenome e nascimento. Mas vou usar somente o campo nome.
Na tabela1 existe o nome [Ô]Juca[Ô]
na tabela2 existe o nome [Ô]Pelé[Ô]
Usando o UNION (no meu caos UNION ALL para retornar os registros duplicados), irá retornar [Ô]Juca[Ô] e [Ô]Pelé[Ô]. Mas eu gostaria de identificar, por exemplo, se [Ô]Juca[Ô] pertence a tabela1 ou a tabela2.
Na verdade o que eu preciso é identificar a qual tabela pertence o registro.
Por exemplo, supondo que ambas as tabelas só tem um nome, sobrenome e nascimento. Mas vou usar somente o campo nome.
Na tabela1 existe o nome [Ô]Juca[Ô]
na tabela2 existe o nome [Ô]Pelé[Ô]
Usando o UNION (no meu caos UNION ALL para retornar os registros duplicados), irá retornar [Ô]Juca[Ô] e [Ô]Pelé[Ô]. Mas eu gostaria de identificar, por exemplo, se [Ô]Juca[Ô] pertence a tabela1 ou a tabela2.
mesmo você usando somente o campo Nome terá que colocar isso [ô]Tabela1[ô] As Tabela como o Professor mencionou. Só assim para saber em qual tabela vem o registro...
Sim, mas eu preciso retornar a tabela que o registro pertence. Por exemplo, se o nome [Ô]Juca[Ô] pertence a tabela1, eu jogo [Ô]tabela1[Ô] para uma variável.
Eu sei que a tabela tem um alias. Eu não quero identificá-la na expressão SQL. Eu preciso retornar para o sistema a qual tabela pertence cada nome.
Entendeu?
Eu sei que a tabela tem um alias. Eu não quero identificá-la na expressão SQL. Eu preciso retornar para o sistema a qual tabela pertence cada nome.
Entendeu?
FBUR
A solução é bem simples. E pode até parecer, mas em nenhum momento eu utilizei um Alias de tabela em meu exemplo.
Mas, não se preocupe, pois o fato de que meu exemplo também não está certo (eu copiei e colei a primeira linha na segunda e não alterei o conteúdo da forma adeqüada), deve ter contribuÃdo ainda mais na confusão.
O correto é, por exemplo:
Nesse exemplo, as tabelas minhaTabela1, minhaTabela2 e minhaTabela3 possuem os três campos Nome, Sobrenome e Telefone com os mesmos tipos de dados e caracterÃsticas.
A consulta, no entanto, retorna quatro campos, um deles denominado [Ô]Tabela[Ô], que não está armazenado em nenhuma das tabelas, mas que retorna um valor textual com o nome da tabela que é [Ô]dona[Ô] do registro.
Em tempo: [Ô]Copiar e colar[Ô] não é atalho, é ato-falho. Eu reclamo muito de quem tem esse costume, mas não estou livre dele, como se pode ver. Assim sendo, façam o que eu falo, não o que eu faço.
A solução é bem simples. E pode até parecer, mas em nenhum momento eu utilizei um Alias de tabela em meu exemplo.
Mas, não se preocupe, pois o fato de que meu exemplo também não está certo (eu copiei e colei a primeira linha na segunda e não alterei o conteúdo da forma adeqüada), deve ter contribuÃdo ainda mais na confusão.
O correto é, por exemplo:
...
SELECT Nome, Sobrenome, Nascimento, [ô]minhaTabela1[ô] As Tabela FROM minhaTabela1 UNION
SELECT Nome, Sobrenome, Nascimento, [ô]minhaTabela2[ô] As Tabela FROM minhaTabela2 UNION
SELECT Nome, Sobrenome, Nascimento, [ô]minhaTabela3[ô] As Tabela FROM minhaTabela3;
...
Nesse exemplo, as tabelas minhaTabela1, minhaTabela2 e minhaTabela3 possuem os três campos Nome, Sobrenome e Telefone com os mesmos tipos de dados e caracterÃsticas.
A consulta, no entanto, retorna quatro campos, um deles denominado [Ô]Tabela[Ô], que não está armazenado em nenhuma das tabelas, mas que retorna um valor textual com o nome da tabela que é [Ô]dona[Ô] do registro.
Em tempo: [Ô]Copiar e colar[Ô] não é atalho, é ato-falho. Eu reclamo muito de quem tem esse costume, mas não estou livre dele, como se pode ver. Assim sendo, façam o que eu falo, não o que eu faço.
show professor, bem desse jeitinho, usei isso uma vez na vida, q já nem me lembrava mesmo de como fazer
da tabela vem os 3 campos selecionados, o quarto campo totalmente virtual retorna a informação da tabela, mas da forma q explicou acredito q ele tenha entendido sem qq problema...
da tabela vem os 3 campos selecionados, o quarto campo totalmente virtual retorna a informação da tabela, mas da forma q explicou acredito q ele tenha entendido sem qq problema...
Agora entendi sim. Perfeito!
Obrigado!
Abs.
Obrigado!
Abs.
Tópico encerrado , respostas não são mais permitidas