2016-11-29 2 views
1

Так что я это для базы данных A:Используйте набор 1 из базы данных, чтобы получить набор 2 из другой базы данных в сочетании

SELECT uid FROM user_id where this = :this 

С тех UID я хочу, чтобы получить данные из базы данных B с помощью следующего запроса

SELECT name FROM users where uid = :uid_table1 

Как это сделать в 1 запросе?

ответ

1

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

В качестве аналогии:

У меня есть две задачи.

Получите определение «зонтик» из новейшего печатного издания Энциклопедический словарь Merriam-Webster.

Посмотрите определение каждого слова в предыдущем определении в новейшей печати OED.

Хотя можно перефразировать, что в одном предложении, что эквивалентно ответ Саги или использование какого-либо язык клея:

Посмотрите каждое слово из новейшей печати определения Merriam-Webster Энциклопедического словаря в Зонта в новейшей печати OED.

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

0

Вы можете использовать IN():

SELECT name 
FROM Table2 t 
WHERE t.uid IN(SELECT s.uid FROM Table1 
       WHERE this = :this) 

по базе данных Я полагаю, вы имеете в виду таблицу?

В качестве альтернативы, вы можете присоединиться:

SELECT name 
FROM Table2 t 
JOIN Table1 s 
ON(s.uid = t.uid) 
WHERE s.this = :this 
+0

Я говорю о разных базах данных, а не о разных таблицах;) – Wouter

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