beststorm 0 Denunciar post Postado Dezembro 22, 2011 Estou querendo montar uma query meio bizarra, e queria saber se alguém pode ajudar Tenho um website que faz controle de contas de um jogo, só que o jogo é composto por 3 subservidores ( cada subservidor tem a mesma estrutura de banco de dados, ou seja, 3 bancos de dados diferentes com exatamente as mesmas tabelas, porém dados diferentes) Alem disso, tem um outro banco de dados que serve pra controle do site, que tem um cadastro da conta geral do site, e pela conta geral você consegue administrar as contas de jogo. O objetivo é listar as contas do jogo que ficam no database do servidor pertencentes a conta do site que é representada pela tabela accounts, e pra cada registro "accounts_game.account" = "accounts.id", obter o banco de dados a ser usado (que será descoberto através do campo destacado em amarelo servers."server_database") e por fim obter 1 registro da tabela server1.login pra cada registro em accounts_game OBS: o campo da tabela do jogo é server1.login.account_id, server2.login.account_id, server3.login.account_id Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Dezembro 26, 2011 A ideia é essa: mysql> create schema server1 ; create schema server2 ; create schema server3 ; Query OK, 1 row affected (0.00 sec) Query OK, 1 row affected (0.00 sec) Query OK, 1 row affected (0.00 sec) mysql> use server1 ; create table login ( id integer , login varchar ( 25 ) ) ; Database changed Query OK, 0 rows affected (0.05 sec) mysql> use server2 ; create table login ( id integer , login varchar ( 25 ) ) ; Database changed Query OK, 0 rows affected (0.07 sec) mysql> use server3 ; create table login ( id integer , login varchar ( 25 ) ) ; Database changed Query OK, 0 rows affected (0.09 sec) mysql> insert into server1.login ( id , login ) values ( 1 , '123' ) ; Query OK, 1 row affected (0.00 sec) mysql> insert into server2.login ( id , login ) values ( 1 , '456' ) ; Query OK, 1 row affected (0.00 sec) mysql> insert into server3.login ( id , login ) values ( 1 , '789' ) ; Query OK, 1 row affected (0.00 sec) mysql> use server1 ; Database changed mysql> select * from login INNER JOIN server2.login sv2 ON login.id = sv2.id INNER JOIN server3.login sv3 ON login.id = sv3.id; +------+-------+------+-------+------+-------+ | id | login | id | login | id | login | +------+-------+------+-------+------+-------+ | 1 | 123 | 1 | 456 | 1 | 789 | +------+-------+------+-------+------+-------+ 1 row in set (0.00 sec) mysql> Depois você pode utilizar um alias para distinguir os campos de cada servidor .. espero que ajude. Compartilhar este post Link para o post Compartilhar em outros sites