Andreatti 0 Denunciar post Postado Agosto 24, 2010 Boa tarde galera. Seguinte. To criando um site para meu time de MMORPG. Fui criando o banco e as tabelas, quando me deparei com o seguinte problema. Eu preciso separar as informaçoes da seguinte forma. Uma tabela chamada "char", uma "itens" e uma outra "adds". Funciona da seguinte forma. Exemplo: Meu "char" tem 10 "itens", e cada iten PODE TER no maximo 7 "adds" (adds sao funcionalidades de cada iten). Eu criei as tabelas da seguinte forma. Char: +---------+-------+-------+--------+-----------+-------+-------+ | id_char | nome | nivel | classe | subclasse | reino | itens | +---------+-------+-------+--------+-----------+-------+-------+ Itens: +---------+-------+-------+ | id_iten | nome | adds | +---------+-------+-------+ Adds: +---------+-------+ | id_char | nome | +---------+-------+ Isso pq eu ainda quis simplificar pois se eu quisesse deixar o banco nos trinques msm a tabela adds iria ganahr mais campos e eu iria precisar de mais umas 3 tabelas pra acabar de completar essa parte. Agora explicando o banco. Na tabela char o campo "itens" seria uma chave estrangeira da tabela itens(isso eu li na net). Na tabela itens o campo "adds" seria uma chave estrangeira da tabela adds. Eu fiz aqui em casa e na hora de realizar a consulta(dentro do banco msm) nao funcionou. Tipo. A consulta que eu quero fazer eh. selecionar a tabela "char" pegar um campo especifico(isso seria o campo que eu quiser, vamos adotar como exemplo seleciona o char cujo nome seja igual a ...). Essa minha consulta nao deu certo pois eu quero que na hora de mostrar o campo "itens" da tabela "char" ele pegue automaticamente os dados da tabela "itens" cujo id_itens pertença ao char selecionado, e que quando ele tiver fazendo isso e chegar no campo "adds" da tabela "itens" ele faça a msm coisa, ele pegue todos os dados da tabela "adds" referente ao char selecionado. Espero que tenham entendido. Eu to a dois dias tentando achar algo na internet mais nao consigo fazer nada que acho funcionar. Desde ja agradeço a ajuda. (ja estou desesperado :( ) Compartilhar este post Link para o post Compartilhar em outros sites
Ilano 0 Denunciar post Postado Agosto 25, 2010 Olá Andreatti, Bem, não sei se entendi bem o q você está querendo, mas vamos lá. você terá q verificar alguns aspectos: 1º) A modelagem de dados: você fez os vínculos corretamente? Por exemplo: Na tabela char, você tem o campo itens, este campo está igual ao criado na tabela Itens? Use o DBDesigner para criar suas tabelas com todos os relacionamentos necessários. 2º) Tendo estes campos devidamente vinculados, é só usar o INNER JOIN, por exemplo: SELECT A.id_char, A.nome, A.nivel, A.classe, A.subclasse, A.reino, A.itens, B.nome, B.adds, C.nome FROM Char A INNER JOIN Itens B ON (A.itens = B.id_iten) INNER JOIN Adds C ON (B.adds = C.id_adds) Se, na tabela Itens não receber valores da tabela Adds, você pode usar o LEFT JOIN: SELECT A.id_char, A.nome, A.nivel, A.classe, A.subclasse, A.reino, A.itens, B.nome, B.adds, C.nome FROM Char A INNER JOIN Itens B ON (A.itens = B.id_iten) LEFT JOIN Adds C ON (B.adds = C.id_adds) Mas, para isso suas tabela deve estar corretamente moduladas. Compartilhar este post Link para o post Compartilhar em outros sites