Запрос к 2-м БД
Запрос к 2-м БД
Здравствуйте!
Помогите составить запрос к 2-м БД:
1-я БД auto22016 в ней таблица ARTICLES содержит ART_ID, ART_ARTICLE_NR - артикл и он же № запчасти, ART_SUP_ID - бренд запчасти числом (число это ссылается на таблицу BRANDS и его поле BRA_ID которое и отдает BRA_BRAND - !!! ТЕКСТОМ БРЕНД)
2-я БД elauto_im в ней таблица elauto_im в которой ART_NUM - артикл и он же № запчасти, SUP_BRAND - бренд запчасти ТЕКСТОМ!!! ,PRICE - цены соответсвенно
--------------
теперь задача составить запрос - так чтоб выбрать ART_ID (из таблицы №1) и PRICE (из таблицы №2)
Где АртукулЫ и Бренды(текстовые) совподали в 2-х таблицах
Помогите составить запрос к 2-м БД:
1-я БД auto22016 в ней таблица ARTICLES содержит ART_ID, ART_ARTICLE_NR - артикл и он же № запчасти, ART_SUP_ID - бренд запчасти числом (число это ссылается на таблицу BRANDS и его поле BRA_ID которое и отдает BRA_BRAND - !!! ТЕКСТОМ БРЕНД)
2-я БД elauto_im в ней таблица elauto_im в которой ART_NUM - артикл и он же № запчасти, SUP_BRAND - бренд запчасти ТЕКСТОМ!!! ,PRICE - цены соответсвенно
--------------
теперь задача составить запрос - так чтоб выбрать ART_ID (из таблицы №1) и PRICE (из таблицы №2)
Где АртукулЫ и Бренды(текстовые) совподали в 2-х таблицах
Re: Запрос к 2-м БД
ваша база поддерживает запросы между разными БД?
Re: Запрос к 2-м БД
На Yii написан сайт - и вроде такое возможно
Re: Запрос к 2-м БД
у меня выделеный сервер - как это узнать?
Re: Запрос к 2-м БД
Вопрос не решен
Re: Запрос к 2-м БД
Как попробовать? Что именно сделать?
Версия MySQL-клиента: 5.5.54
Версия MySQL-клиента: 5.5.54
Re: Запрос к 2-м БД
А как правилно сделать запрос, делаю так? :
Но та идет подключение к 1-й БД (Yii::app()->db->createCommand()) , как правильно?
Код: Выделить всё
$user = Yii::app()->db->createCommand()
->select('db2.ART_ID')
->from('db.elauto_im, db2.auto22016')
->limit(5)
->queryRow();
Re: Запрос к 2-м БД
С Новым Годом!
Помогите плиз
Помогите плиз
Re: Запрос к 2-м БД
У меня db и db2
Re: Запрос к 2-м БД
В Yii каждый db-инстанс создаёт свой PDO-объект (с объявленным в конфиге DSN) и работает через него.
А для того, чтобы сделать кросс-db запрос, нужно создавать всего один PDO-объект и работать через него.
Соответственно, с помощью Yii2 вы желаемый запрос никак не сделаете.
Только на чистом PDO. Как-то так:
При этом, базы должны крутиться под одним и тем же mysqld, а указанный в DSN юзер должен с этим логином и паролем (user:pass) иметь все необходимые доступы как к db_A, так и к db_B.
А для того, чтобы сделать кросс-db запрос, нужно создавать всего один PDO-объект и работать через него.
Соответственно, с помощью Yii2 вы желаемый запрос никак не сделаете.
Только на чистом PDO. Как-то так:
Код: Выделить всё
$db = new PDO("mysql:host=localhost;dbname=mydbname", "user", "pass");
$res = $db->query("SELECT * FROM `db_А`.`table1`, `db_B`.`table2` WHERE ...");
Re: Запрос к 2-м БД
Хотя нет, я наврал. На yii может быть через один компонент db + queryBuilder как-то и сделаете при выполнении всё тех же условий, но через два db-компонента (db/db2) точно нет. То есть до чистого PDO может быть и не придётся скатываться.
Re: Запрос к 2-м БД
А как через db + queryBuilder сосотавить мой запрос?
Re: Запрос к 2-м БД
Для начала так же, как в моём примере с PDO, составляете чистый SELECT и запихиваете его в createCommand. Делаете queryAll, например. То есть для начала пробуйте raw sql в билдере.
Re: Запрос к 2-м БД
Так у Вас на примере YII2
Re: Запрос к 2-м БД
Что именно? В первой версии raw sql тоже есть в билдере. У меня вообще пример на PDO.
Re: Запрос к 2-м БД
коллега, заканчивайте тупить. нельзя одновременно прокатиться на двух автомобилях. Нельзя и один запрос сделать через два соединения. Просто пробуйте сделать в вашем yii2 запрос с использованием наименований ваших баз.