2015-12-22 3 views
1

Существуют три таблицы: «TA» и «TB» два принадлежат одной и той же базе данных, но третья таблица «TC» относится к другой базе данных. Мне нужно получить последнюю строку из третьей таблицы «TC» и на основе данных, полученных в последней строке, я должен получить все данные из «TA» и «TB». Пожалуйста, помогите мне в этом, так как есть две базы данных. Структуры таблиц: TA (id, usrId) TB (fk_usrId, deviceId, версия) TC (версия) Необходимо выбрать все устройство, имеющее последнюю версию. Последняя версия хранится в последней строке таблицы TC.Выберите данные из двух разных таблиц двух разных баз данных в SQL?

+2

размещать данные выборки и вывода, что вы хотите – mohan111

+2

MySQL или sql-server? у них разные методы. – bansi

ответ

1

select ta.id,ta.userid from ta join tb on ta.userid=tb.usrid join tc on tc.version=tb.version and tc.version=(SELECT TOP 1 * FROM tc ORDER BY version DESC)
здесь им выбрать последний столбец, основанный на нет, то данный по алфавиту на основе ур необходимости использовать суб query.that должен быть уникальным

0

В SQL Server, если эти две базы данных находятся на одном сервере

SELECT * FROM FirstDB.Schemaname.TA INNER JOIN FirstDB.Schemaname.TC ON TA.userid = TB.user id and TB.version IN (SELECT TOP 1 version FROM SecondDB.Schemaname.TC ORDER BY version DESC) 

в SQL Server, если эти две базы данных находятся в разных серверах

Тогда вам придется добавить еще один сервер в качестве связанного сервера в другой и использовать спецификатор сервер также в приведенном выше запросе

связанный сервер ссылок ссылка: https://msdn.microsoft.com/en-in/library/ms188279.aspx

0

Попробуйте для SQL Server:

select ta.*, tb.* 
from 
(select top 1 version from differentdb..tc order by version desc) t 
inner join tb on tb.version = t.version 
inner join ta on ta.id = tb.fk_usrId 

Попробуйте это для MySQL:

select ta.*, tb.* 
from 
(select version from differentdb.tc order by version limit 0,1) t 
inner join tb on tb.version = t.version 
inner join ta on ta.id = tb.fk_usrId 
+0

Вы получили хорошие ответы. Чтобы уступить свой вопрос, отметьте один из ответов, принятый, если он вам поможет. – zedfoxus

0

Сначала Вам нужно добавить связанные сервера в серверных объектах, а затем записать таблицу NAM е как [ServerInstanceName]. [имя_базы_данных]. [SchemaName]. [TableName] для обеих таблиц следовать выше синтаксис в FROM референс запроса Остальной код будет нормально

Смежные вопросы