Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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 :( )
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.