MySql: Как прочитать таблицу из одной базы данных при поиске второй таблицы базы данных для каждой строки? - PullRequest
0 голосов
/ 23 августа 2011

Я новичок в MySql / PHP.

Каждая строка из Database1.table1 должна быть прочитана и отображена. Он содержит столбец с поисковым термином, который мне нужно передать в Database2.table2 и обработать возвращаемые данные для каждой прочитанной строки. В настоящее время я делаю новое соединение с Database2.table2 для каждой строки в db1.table1, что очень медленно и неэффективно. Я не могу изменить структуру таблицы.

Спасибо!

Таблица

db1 table1:

id_row    type        model        har               status    id         date         
1         ATX         Hybrion      88-85-5d-id-ss    y         aaa12345   2011/08/12
2         BTX         Savin        none              n         aaa12345   2010/04/05
3         Full        Hp           44-55-sd-qw-54    y         ashley a   2011/07/25
4         ATX         Delin        none              _         smith bon  2011/04/05

db2 table2:

id_row    id          first_name   last_name    dept    telephone
1         aaa12345    joe          smith        ANS     800 555 5555
2         bbb67890    sarah        brown        ITL     800 848 8848

Таким образом, таблица 1 базы данных 1 - это та, которая читается и отображается, db2 table2 читается и информация отображается, если ID положительно совпадает. Идентификатор уникален только в db2 table2, db1 table1 имеет многоформатный столбец, поэтому он может или не может быть идентификатором, так как эти строки могут иметь повторяющийся идентификатор. Надеюсь, что это дает лучшее понимание того, что мне нужно. Еще раз спасибо!

Кто-то предложил использовать EXISTS, но я не знаю как, учитывая ситуацию.

1 Ответ

2 голосов
/ 23 августа 2011

Предполагая, что пользователь, от имени которого вы работаете, имеет правильные права на просмотр обеих баз данных, вы можете сделать это, присоединившись к таблицам с использованием синтаксиса 'dbname.tablename', например:

select t1.*, t2.*
from database1.table1 t1
LEFT OUTER JOIN database2.table2 t2 ON t1.id = t2.id

это даст вам все строки из таблицы A, и там, где есть соответствующая строка в таблице b, соответствующие строки также оттуда (или нули, если нет соответствующей строки) ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...