Jump to content
SrTunes

Consulta MySQL campo de uma tabela guarda nomes de tabelas

Recommended Posts

Bom dia amigos, estou com um problema para fazer uma pesquisa e gostaria da ajuda de vocês.

Seguinte, tenho uma tabela com o nome de um usuário, por exemplo joao.silva, esta tabela guarda a lista de todos os nomes de projetos em uma coluna, cada projeto tem uma tabela de atividades. nessa tabela de atividades o usuário joão tem atividades vinculadas a ele.

 

A pesquisa que quero fazer é buscar em todas as tabelas de projetos as atividades ligadas ao joao.silva. Tentei fazer assim para testar pegar o 1º projeto da lista:

 

SELECT nome_ativ, user_ativ, dtprev_ativ, prev_ativ FROM (SELECT projetos_usuario FROM `joao.silva` WHERE id = 1) AS pr

 

usando o phpmyAdmin, mas ele me retorna um erro: #1054 - Unknown column 'nome_ativ' in 'field list'

O problema é que essa coluna existe. Acredito que seja alguma coisa que falta na subquery.

Alguém pode me ajudar? Aceito sugestões.

 

Muito obrigado.

Share this post


Link to post
Share on other sites

A única coluna que existe no subselect que serve de tabela virtual é a projetos_usuario.

 

 

Share this post


Link to post
Share on other sites
Em 01/07/2017 at 18:38, Motta disse:

A única coluna que existe no subselect que serve de tabela virtual é a projetos_usuario.

 

 

Não, tem a coluna id também.

Share this post


Link to post
Share on other sites
5 horas atrás, Motta disse:

Não entendi, desculpe-me.

Desculpe, achei que sua primeira resposta fosse uma pergunta, ai respondi que a tabela joao.silva tinha duas colunas, uma com o nome de "id" e outra com o nome de "projetos_usuario"

Share this post


Link to post
Share on other sites

Quando você faz um select do tipo

 

SELECT nome_ativ, user_ativ, dtprev_ativ, prev_ativ
FROM (SELECT projetos_usuario
      FROM `joao.silva`
      WHERE id = 1) AS 

E como se estivesse selecionando o subselect como um tabela , esta tabela virtual

tem apenas coluna a projetos_usuario , logo não se pode selecionar outra coluna além desta.

 

Publique o modelo com as tabelas usadas e o que você precisa.

 

 

Share this post


Link to post
Share on other sites
7 minutos atrás, Motta disse:

Quando você faz um select do tipo

 


SELECT nome_ativ, user_ativ, dtprev_ativ, prev_ativ
FROM (SELECT projetos_usuario
      FROM `joao.silva`
      WHERE id = 1) AS 

E como se estivesse selecionando o subselect como um tabela , esta tabela virtual

tem apenas coluna a projetos_usuario , logo não se pode selecionar outra coluna além desta.

 

Publique o modelo com as tabelas usadas e o que você precisa.

 

 

É exatamente o que quero, o select da subquery será o nome da tabela da query principal. Eu quero pegar o primeiro dado da coluna projetos_usuario ta tabela joao.silva e usar na query principal.

Share this post


Link to post
Share on other sites
Citar

É exatamente o que quero, o select da subquery será o nome da tabela da query principal. Eu quero pegar o primeiro dado da coluna projetos_usuario ta tabela joao.silva e usar na query principal.

 

Para mim está confuso ainda , "joao.silva" é uma tabela ? Uma tabela para cada usuário !?

 

Publique a estrutura de suas tabelas

Share this post


Link to post
Share on other sites
16 horas atrás, Motta disse:

 

Para mim está confuso ainda , "joao.silva" é uma tabela ? Uma tabela para cada usuário !?

 

Publique a estrutura de suas tabelas

 

Em 01/07/2017 at 18:38, Motta disse:

A única coluna que existe no subselect que serve de tabela virtual é a projetos_usuario.

 

 

Ok, joao.silva é uma tabela, esta tabela lista os projetos que o João esta envolvido. Em cada linha da tabela joao.silva tem o nome de uma tabela de projeto, do jeito que esta na imagem em anexo. O que quero é listar todas as atividades do João em cada projeto, que é a ligação em vermelho que esta na imagem. No exemplo do código, tentei pegar os dados apenas do projeto 1, por isso fiz o where id=1.

Fiz o esquema no excel, mas o real é em mysql mesmo.

tabelas.jpg

Edited by SrTunes
adicionei informações

Share this post


Link to post
Share on other sites

Como ficou as estrutura das tabelas ?

Ou

e esta sua dúvida , como ficaria a estrutura ?

Share this post


Link to post
Share on other sites
3 horas atrás, Motta disse:

Como ficou as estrutura das tabelas ?

Ou

e esta sua dúvida , como ficaria a estrutura ?

Quero que minha pesquisa me traga isso que esta em anexo:

resultado-pesquisa.jpg

Share this post


Link to post
Share on other sites
Em 04/07/2017 at 16:30, SrTunes disse:

Quero que minha pesquisa me traga isso que esta em anexo:

resultado-pesquisa.jpg

Será que alguém sabe onde estou errando?

Share this post


Link to post
Share on other sites

publique a estrutura de suas tabelas , sem elas é muito difícil te ajudar.

Share this post


Link to post
Share on other sites
3 horas atrás, Motta disse:

publique a estrutura de suas tabelas , sem elas é muito difícil te ajudar.

E ai Motta, beleza. Então, nas imagens que anexei antes mostra todas as tabelas que tenho, tudo bem que é um print, mas a estrutura das tabelas são aquelas. Tem a tabela joao.silva e tem as tabelas projeto1, projeto2, projeto3 e projeto4. Na outra imagem, que anexei depois, tem o tipo de resultado da pesquisa que quero fazer com aquele comando. Desculpe a ignorância. mas o que mais falta para que eu consiga me fazer entender?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Tadeu Neto
      Boa tarde, estou tentando criar uma pesquisa no mongo em que ao digitar uma palavra ele pesquise tanto por palavras acentuadas quanto sem ex: água, agua, café, cafe, cafee, joão, joao e assim vai. 
       
      Já vi algumas coisas mais não consegui ter o resultado necessário, pode ser por minha falta de experiência.
       
      Obrigado pela ajuda.
    • By heddyman
      boa tarde colegas... estou desenvolvendo um trabalho para a faculdade e estou com problemas no meu código. Na hora hora que eu seleciono a opção de pesquisa ele trava. Podem me ajudar por favor....
      #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> /*Faça um algoritmo em linguagem C que emule as características de um player de músicas sendo executado em modo texto, via prompt de comando. 1. Deve-se criar uma playlist das músicas utilizando uma lista encadeada. A lista encadeada poderá ser simples ou dupla, circular ou não circular. Fica a critério do aluno decidir. 2. Deve-se armazenar o nome de cada música, do artista/banda e a duração da faixa. Para o armazenamento utilize uma estrutura heterogênea de dados. 3. Para inserção dos dados, você pode criar uma leitura dos dados através de um menu na tela ou já deixá-los armazenados em um arquivo texto no seu computador e só carregar este arquivo ao executar o programa. Ou ambas soluções. Decida também como você irá implementar a inserção (no início, no fim ou no meio da lista encadeada); 4. Deve existir um menu na tela. Este menu deve permitir a inserção de novas músicas (caso optado pela inserção manual de dados), deve ter a opção de listar todas as músicas da playlist (listagem de uma lista encadeada) na tela e encerrar o*/ struct Lista { char musica[40], cantor[40]; float duracao; Lista *prox; }; Lista *inicio, *fim, *aux; void inserirMusica() { int c; Lista *novo = (struct Lista *)malloc(sizeof(struct Lista)); printf("\nQual eh a musica? "); fgets(novo->musica, 39, stdin); printf("De quem eh a musica? "); fgets(novo->cantor, 39, stdin); printf("qual a duracao da musica? "); scanf("%f", &novo->duracao); while ((c = getchar()) != '\n' && c != EOF) {} // Limpar buffer do teclado novo->prox = NULL; if (inicio == NULL) //A Fila esta vazia e iremos inserir o primeiro elemento { inicio = fim = novo; } else { fim->prox = novo; fim = novo; } } void esvaziarLista() { char ch; if (inicio == NULL) { printf("\nA fila esta vazia!\n\n"); } else { printf("\nTem certeza que deseja esvaziar toda a lista?(s/n): "); ch = getchar(); if (ch == 's' || ch == 'S') { while (inicio != NULL) { aux = inicio; inicio = inicio->prox; free(aux); // Libera o espaco na memoria } printf("\nA lista foi esvaziada com sucesso!!\n\n"); } else { printf("\nA lista nao foi esvaziada!!\n\n"); } } } void mostrarLista() { aux = inicio; if (inicio == NULL) { printf("\nA lista esta vazia!"); } else { while (aux != NULL) { printf("musica: %s", aux->musica); printf("cantor: %s", aux->cantor); printf("duracao: %f\n\n", aux->duracao); aux = aux->prox; } } printf("\n\n"); } void localizarMusica() { aux = inicio; if (inicio == NULL) { printf("\nA lista estah vazia!"); } else { char musica[40]; printf("Digite a musica que procura: "); scanf("%s", &aux); while (aux != NULL) { if (musica == aux->musica) { printf("\nMusica %s localizada!\n\n", aux->musica); printf("musica %s", aux->musica); printf("cantor: %s\n\n", aux->cantor); return; } else { aux = aux->prox; } } if (aux == NULL) { printf("\nMusica %s nao localizada!\n", musica); } } printf("\n\n"); } int main() { setlocale(LC_ALL, ""); system("color 0E"); int opt, c; do { printf("*==================================*\n"); printf("| Simulador de Player de Musica |\n"); printf("*==================================*\n\n\n\n"); printf("*===========================*\n"); printf("| 1. Inserir Música |\n"); printf("| 2. Pesquisar Músicas |\n"); printf("| 3. listar Músicas |\n"); printf("| 4. Limpar Lista do Player |\n"); printf("| 5. Sair |\n"); printf("*===========================*\n"); printf("Digite sua escolha: "); scanf("%d", &opt); while ((c = getchar()) != '\n' && c != EOF) {} // Limpar buffer switch (opt) { case 1: inserirMusica(); printf("\nMusica inserida com sucesso!!\n\n"); system("pause"); break; case 2: localizarMusica(); system("pause"); break; case 3: mostrarLista(); system("pause"); break; case 4: esvaziarLista(); system("pause"); break; case 5: printf("\nO programa foi encerrado com sucesso!!\n\n"); system("pause"); break; default: printf("\nEscolha Invalida!!\n\n"); system("pause"); break; } system("cls"); } while (opt != 5); return 0; }  
    • By Ribis
      Prezados, bom dia.
       
      Me cadastrei no fórum a fim de ajudar um amigo.
      Ele realiza pesquisa de vagas laborais no site governamental: https://empregabrasil.mte.gov.br/, o qual possui um campo de pesquisa denominado "Vagas de Emprego", onde se digita algo a ser encontrado.
      Anteriormente, além de digitar neste campo de pesquisa, existiam filtros que deveriam ser preenchidos, tais como: estado, cidade e etc., os quais restringiam e finalizavam a busca.
      Ocorreu mudança no sistema de pesquisa do site, sendo que: primeiramente se digita no campo de pesquisa e depois, se encontrar algum resultado de pesquisa, é que os filtros (estado, cidade e etc) serão habilitados...
       
      Antes de ocorrer a mudança no sistema de pesquisa do site, meu amigo digitava "%%%" (sem as aspas) e obtinha vários resultados, logo em seguida, aplicava os filtros correspondentes para restringir sua busca.
      Agora, a forma de pesquisa tornou-se complicada,  pois, considera-se os caracteres de forma genérica e o sistema de filtros nem sempre abrem, o "%%%" não funciona e etc.
      Enfim, tornou-se complicado algo que era relativamente simples.
       
      Pois bem, após estas explicações, peço a vocês: por favor, existe algum "operador de pesquisa" que possa ser digitado para retornar todos os valores existentes no banco de dados do site, o que consequentemente, fará com que o sistema de filtro seja habilitado e possa se restringir a busca?

      *Moderação, não sei qual o tipo de programação utilizada no site supracitado, coloquei o tópico na sessão HTML e CSS, por entender que seria mais apropriado.
       
      Desde já, agradeço a todos que possam tentar ajudar.
      Ribis.
       
       
    • By Bruno Orosco
      Olá pessoal do imasters,
       
      sou novato em programação PHP, estou precisando inserir Id sequencial diferente do banco, nesta ocasião eu tenho uma tabela no banco com os cadastros de membros, quando eu puxo os registros para uma tabela, esses dados chegam em ordem alfabética do feminino para o masculino, o que eu preciso fazer é colocar Ids nessa tabela toda vez que faço a leitura do banco. Imagino inserir uma variável na coluna Id mas não estou obtendo um resultado satisfatório.
        <?php
                              include '../../_fonts/config/banco.php';
                              $pdo = Banco::conectar();
                              $sql = 'SELECT * FROM encontrista ORDER BY sexoEnc ASC';
                              $i = 0;
                              foreach($pdo->query($sql)as $row)
                              {   $i=$i+1;//aqui esta o teste que tentei
                                  echo '<tr>';
                                  echo '<th '.$i'</th>'; //esta coluna precisa gerar um num. sequencial independente do banco
                                  echo '<th scope="row">'. $row['nomeEnc'] . '</th>';
                                  echo '<td>'. $row['telEnc'] . '</td>';
                                  echo '<td>'. $row['responsavel'] . '</td>';
                                  ?>
       
      obrigado desde já!!!
                            
       
    • By Rodrigo Araujo
      Preciso fazer um campo de pesquisa no wordpress para um cliente, onde o mesmo possa pesquisar seus clientes pelo cnpj e o banco de dados retornar apenas o que ele pesquisou e nao todos os clientes cadastrados, alguem pode me ajudar e me explicar alguns comandos ? 
       

       
      este é o que eu estou usando mas dá erro na programação inteira.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.