Как я могу использовать два источника данных в 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, должен иметь доступ к обеим базам данных, чтобы это работало.