Как я могу использовать два источника данных в CFQUERY?

Я использую ColdFusion 9.1.

Мне нужно использовать два разных источника данных в некоторых моих запросах. Я знаю, что это можно сделать, потому что я вижу другой код, который использует два разных источника данных, и он отлично работает.

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

У меня есть база данных по умолчанию в этой области. Значение по умолчанию - "DatasourceOne".

<cfquery>
SELECT UserID
FROM   DatasourceOne.TableOne IN (SELECT Userid FROM DatasourceTwo.TableTwo )
</cfquery

что правила или рекомендации по использованию нескольких источников данных?

уточнение

Я должен был изначально спросить, как я могу использовать две базы данных (не Источники данных) в одном запросе. Я уверен, что ваши ответы были бы другими. У нас есть обе базы данных, настроенные как источники данных, хотя, и я был немного смущен.

3 ответов


в зависимости от вашей базы данных, если вторая база данных находится на том же сервере (или определена как связанный сервер), и пользователь в источнике данных имеет разрешение, вы обычно можете ссылаться на другую базу данных.

SELECT * FROM myTable 
WHERE myField IN 
(SELECT otherField FROM otherDatabase.dbo.tableName)

вы не можете разговаривать с двумя источниками данных CF (JDBC) в одном CFQUERY. Что вы можете сделать:

  • используйте две базы данных в одном источнике данных. Например, если у вас есть экземпляр SQL Server с двумя базами данных, вы можете выполнить запрос через соединение JDBC, которое взаимодействует с обеими базами данных. Это похоже на то, что вы описываете в своем вопросе. вот более подробное объяснение.
  • использовать запросы запросов. Вытащить данные из двух баз данных индивидуально и присоединиться к результатам, используя QoQ в вашем CFC или странице.

ColdFusion может одновременно разговаривать только с одним источником данных*в данном запросе. Однако, если вам нужно поговорить с более чем одной базой данных*на одном сервере, вы можете сделать это, явно указав полные пути к базам данных, таблицам и столбцам, к которым вам нужно получить доступ или присоединиться. Также обратите внимание, что пользователь, для которого настроен источник данных в ColdFusion, должен иметь доступ к обеим базам данных, чтобы это работало.