Соединение между таблицами с использованием MYSQL, а не MSSQL - PullRequest
0 голосов
/ 19 ноября 2008

Можно ли выполнить объединение между таблицами в mysql, охватывающем разные таблицы? в разных базах данных.

Это кажется возможным в MSSQL и значительно ускоряет передачу данных?

Как насчет mysql, вам нужно использовать мощную IDE для этого? или вам нужно написать программу для чего-то подобного?

ОБНОВЛЕНИЕ tblUser SET tblUser.ReceiveInfo = old_database.dbo.contact.third_party_info_yn FROM tblUser внутреннее соединение old_database.dbo.contact ON old_database.dbo.contact.id = tblUser.oldid

Ответы [ 3 ]

3 голосов
/ 19 ноября 2008

Конечно, очень легко. Префикс имени таблицы с именем базы данных, как вы показываете. Мы делаем кросс-базы данных на регулярной основе. Например:

ВЫБЕРИТЕ СЧЕТЧИК (*) ОТ newusers1.users ПРИСОЕДИНЯЙТЕСЬ к newusers2.users

Это, конечно, не ускорит передачу данных по сравнению с наличием обеих таблиц в одной базе данных.

Теперь, если ваши таблицы расположены на разных серверах баз данных, ответ - нет. Примером этого является то, что ваша база данных слишком велика, и вам нужно огородить таблицы. Вещи становятся немного более грязными. Но, учитывая, что вы, кажется, довольны решением MS SQL, оно здесь не применимо.

1 голос
/ 19 ноября 2008

В MySQL вы можете выполнять перекрестные объединения БД, а с помощью механизма FEDERATED даже межсерверные объединения.

0 голосов
/ 19 ноября 2008

MySQL на самом деле не волнует, находятся ли таблицы в одной и той же «базе данных», это просто логическая коллекция таблиц для удобного администрирования, разрешений и т. Д.

Таким образом, вы можете сделать соединение между ними так же легко, как если бы они были в одном (см. Ответ ChrisInEdmonton)

...