Ir para conteúdo
Fórum Script Brasil
  • 0

Select de mais de um número em uma mesma celula


(!_Odisséa_!)

Pergunta

Olá, eu procurei no forum e não achei o que ue estou procurando, na real nem sei se é possivel fazer isso.

Eu tenho a tabela Metais.

+-------------------+
|   tabela Metais   |
+-----+-------------+
| id  |  metal      |
+-----+-------------+
|  1  |  Aluminio   |
|  2  |  Cobre      |
|  3  |  Chumbo     |
+-----+-------------+
e a tabela Noticias
+-----------------------------------+
|          Tabela Noticias          |
+--------+-------------+------------+
|  id_n  |   titulo    |  id_metal  | 
|    1   |    Not 01   |    1, 3    |
|    2   |    Not02    |    2, 3    |
+--------+-------------+------------+

Ai eu tenho uma página que me retorna os dados da noticia selecionada, então aparece

ID : 1

Titulo: Not01

ID_metal: 1,3

Eu preciso que de vez aparecer os números no campo Id_metal, apareça o nome dos metais correspondetes ao número, deveria aprecer:

ID_Metal: Aluminio, Chumbo.

é possivel fazer isso?

O campo Metais.ID é número e o campo Noticias.id_Metal é texto, pra que funcione eu preciso modificar o campo Metais.ID para texto e depois fazer o relacionamento entre tabela? E no comando SQL eu uso Inner Join? Eu tentei fazer isso mas não funcionou, mas to achando que devo ter errado em alguma besteira.

alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Cara no Access fica complicado.

Não me leve a mal mas esta modelagem não esta legal. É quase blasfemo utilzar um banco de dados relaciona desta forma.

você deveria normalizar sua tabelas e cria uma tabel associativa entre contendo id_n e id dai você utiliza o relacionamento para recuperar a informação.

É só um dica porque qualquer solução q eu possa apresentar é uma gambiarra e não a melhor soluçaõ.

você teria com re-modelar seu banco de dados?

Porque através do VBA e Consultas até podiamos conseguir o que você quer mas cmo já disse isto me cheira a gambiarra.

Se fosse SQL Server poderiamos abrir um cursos e desmenbrar a coluna mas ainda assim seria gambi.

Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal seguinte: na query tem como fazer isso sim!

Você não precisa relacionar pelo banco, você pode relacionar pelo asp...

exemplo:

faz uma query da tabela metais

e faz uma outra query da tabela noticias

cria uma condiconal com if simples mesmo dizendo que sempre que for imprimir 1 imprima aluminio por exemplo... e assim por diante...

sacaram?

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Jothaz, fique tranquilo dem dizer o que achar melhor para me ajudar. Eu fiz a tabela da maneira que achei melhor, mas como nunca fiz cursos estou aprendendo com a prática, sei que peco em muitos detalhes. Mas se você quiser me ajudar a reestruturar esse banco eu vou ficar muito agradescido.

Rafael, eu pensei em fazer isso mas infelizmente não posso, porque os campos são dinâmicos, por exemplo hoje eu tenho 3 dados cadastrados, amanha quando excluir alguns e excluir outros, o banco vai ter que saber que determinado número é determinado metal.

To achando melhor achar outra solução ou não retornar o resultado de metais.

Valeu a ajuda.

Link para o comentário
Compartilhar em outros sites

  • 0

É... dai já era... mas se os dados no campo forem dinamicos a ideia do Jothaz tb já era! você vai precisar então repensar a sua lógica...

é possivel fazer de várias formas isso... só deverá começar com um lógica robusta...

Como sugestão: cria uma tabela chamada indice, esta tabela terá os campos:

metal||nummetal

pra cada metal vai haver um numero fixo correspondente...

quando o user for cadastrar, ou sei lá ra que serve isso, você disponibiliza os metais precadastrados no banco através de um list/menu que trará para o user os nomes dos metais e correspondentes numeros, sacou?

mas o caso é de lógica apenas, ok?

qualquer. coisa posta aí... fico no aguardo das tuas considerações.

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

Oi Rafael, eu entendi o que você esta me dizendo, mas eu acho que o problema é outro, a questão é que no campo id do metal é número certo! no outro campo referente as imagens ele é texto, porque eu preciso inserir vários id de metais separados por virgula. Entendeu? Eu pensei e fazer algo visual mesmo, por exemplo ele mostra os números e ao lado eu faço uma tabela que mostra todos os metais com os seus ids, sabe? Ai o usuário cruza os dados de duas tabelas.

Valeu, mas eu tenho outra dúvida, qual o código SQL devo usar para buscar um numero exato nesse campo que tem vários id de metais, poe exemplo no campo de id metais eu tenho 12, 15, 17 eu quero que a busca retorne todas as noticias que tem 15 no campos id metais. Qual seria o código?

Muito obrigado mais uma ves.

Link para o comentário
Compartilhar em outros sites

  • 0
Oi Rafael, eu entendi o que você esta me dizendo, mas eu acho que o problema é outro, a questão é que no campo id do metal é número certo! no outro campo referente as imagens ele é texto, porque eu preciso inserir vários id de metais separados por virgula. Entendeu?

entendi sim, mas sem problemas, nesse caso use o LIKE para comprar o campo numero com o campo texto... o like pega os registros "semelhantes", digamos que você tenha cadastrado que inox é 5 e o aluminio é 8 e açocarbono é 10, e na outra tb você coloca que a noticia x é referente ao metal 5, 8.

Rode uma query com like prociurando por noticias que tenham referencia ao metal 5, pronto irá encontrar, ao metal, 8, irá encontrar tb, ao metal 5 e 8 irá encontrar tb, ao metal 10 não ira encontrar nada! sacou?

a query com like tem essa sintaxe:

ComandoSQL = "select * from noticias where id_metal LIKE '%" &metal& "%'  "

sacou?

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0
Oi Rafael, eu entendi o que você esta me dizendo, mas eu acho que o problema é outro, a questão é que no campo id do metal é número certo! no outro campo referente as imagens ele é texto, porque eu preciso inserir vários id de metais separados por virgula. Entendeu?

entendi sim, mas sem problemas, nesse caso use o LIKE para comprar o campo numero com o campo texto... o like pega os registros "semelhantes", digamos que você tenha cadastrado que inox é 5 e o aluminio é 8 e açocarbono é 10, e na outra tb você coloca que a noticia x é referente ao metal 5, 8.

Rode uma query com like prociurando por noticias que tenham referencia ao metal 5, pronto irá encontrar, ao metal, 8, irá encontrar tb, ao metal 5 e 8 irá encontrar tb, ao metal 10 não ira encontrar nada! sacou?

a query com like tem essa sintaxe:

ComandoSQL = "select * from noticias where id_metal LIKE '%" &metal& "%'  "
sacou? []'s Rafael Spilki
Brother talvez a dica do Rafael (como sempre indefenestravel) pode resolver este problema. Sugiro que você tente efetuar uma modelagem desta forma (normalizada) onde existe um tabela associativa entre Metais e Noticias e depois utilizando o JOIN você recupera as informações. Tipo assim:
Select * from  MetaisNoticias mn, Metais m, Noticias n
where mn.id = n.id_n and mn.id = m.id
A modelagem ficaria assim:
+-------------------+
|   tabela Metais   |
+-----+-------------+
| id  |  metal      |
+-----+-------------+
|  1  |  Aluminio   |
|  2  |  Cobre      |
|  3  |  Chumbo     |
+-----+-------------+

+-------------------------
|    MetaisNoticias        
+--------+---------------+
|  id_n  |   id          |  
|    1   |    1          |   
|    1   |    3          |   
|    2   |    2          | 
|    2   |    3          |
+--------+---------------+

+-------------------------
|          Tabela Noticias         
+--------+-------------+--
|  id_n  |   titulo    |  
|    1   |    Not 01   |   
|    2   |    Not02    |   
+--------+-------------+

Editado por jothaz
Link para o comentário
Compartilhar em outros sites

  • 0

Grandes... agora sim... é essa a lógica... fazer relacionamentos no proprio bd para asp é desnecessário! usem sempre lógica e asp...

agora, indefenestrável?!?! ta loco... aprendi uma nova hoje... vou tentar usar essa palavra amanhã, quem sabe tb consigo a colocar no meu vocabulário! rssssssssssssssssss...

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0
Grandes... agora sim... é essa a lógica... fazer relacionamentos no proprio bd para asp é desnecessário! usem sempre lógica e asp...

agora, indefenestrável?!?! ta loco... aprendi uma nova hoje... vou tentar usar essa palavra amanhã, quem sabe tb consigo a colocar no meu vocabulário! rssssssssssssssssss...

[]'s Rafael Spilki

ahahahahahahahahahahahahahahahah

Mas tome como um elogio e não algo depreciativo.

quanto a sugerstão da modelagem acho a melhor pois normalizar é um boa prática. Seria possivel fazer uma gambi ou um RTA (recurso tecnologico alternativo - gambi) mas acho que traria mais transtornos que beneficios.

E (!_Odisséa_!) qualquer duvida é só postar.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...