я имею 8 баз данных с одинаковыми таблицамизапрос на нескольких базах данных лучшее решение
db0
tbluser | id | name
db1
tbluser | id | name
db2
tbluser
db3
tbluser | id | name
db4
tbluser | id | name
db5
tbluser | id | name
db6
tbluser | id | name
db7
tbluser | id | name
я есть another table dbcommon
где пользовательские сообщения сохраняются
dbcommon
message | id | sender_id | recipient_id
Моя проблема в том, что мне нужно запросить все сообщения с именем пользователя в нем на основе идентификатора отправителя и идентификатора получателя
Каков наилучший способ сделать это на mysql?
Мой подход теперь состоит в том, чтобы объединить все данные пользователя db1 с db7, используя объединение, а затем внутреннее соединение с сообщением в dbcommon, но я не уверен, что было бы хорошо, что если у меня есть миллион данных на пользовательской таблице выберите и союз будет проблемой.
Чтобы лучше понять мой вопрос. Я сделал это, но я не буду использовать его.
select *, sender.nickname as sender_name, recipient.nickname as recipient_name
from dbcommon.message m
inner join
(
select * from db0.tbluser
union
select * from db1.tbluser
union
select * from db2.tbluser
union
select * from db3.tbluser
union
select * from db4.tbluser
union
select * from db5.tbluser
union
select * from db6.tbluser
union
select * from db7.tbluser
) as sender on m.sender_id = sender.id
inner join
(
select * from db0.tbluser
union
select * from db1.tbluser
union
select * from db2.tbluser
union
select * from db3.tbluser
union
select * from db4.tbluser
union
select * from db5.tbluser
union
select * from db6.tbluser
union
select * from db7.tbluser
) as recipient on m.recipient_id = recipient.id
почему на земле у вас есть 8 различных баз данных? Я МОГУ понять, если у вас было 8 похожих таблиц (и даже в этом случае, не так много), но 8 баз данных сумасшедшие –
Если можно каким-либо образом переместить данные в один экземпляр базы данных. Я знаю, что это не вопрос вашего вопроса, но эта архитектура выглядит очень неправильно. – mzedeler
hmm У меня есть японский клиент, и они предоставляют мне эти базы данных, я не могу изменить архитектуру, эти таблицы для игры, причина, почему они это сделали для обработки трафика, php-код будет выбирать, какую базу данных пользователь будет использовать, game – valrecx