I want to join two tables in differenet databases on the same server. Could someone tell me how I could do this in Zend Frameworks Db adapter?
Asked
Active
Viewed 2,873 times
3 Answers
0
-
hi thanks for the reply...but i have alreday got connection to two dbs and can switch between two seemlessly...but dont know how to contrsuct the sql for a join of tow table sitting in two databases. plz advice me..thanks. – sha Jan 13 '10 at 16:26
0
Build tableGateway from your dbAdapter before joining two tables from different database.
use use Zend\Db\Sql\Select;
use Zend\Db\Sql\Where;
$someCondition=new Where();
$someCondition->equalTo('columnName',$columnValue);
//you can build $this->tableGateway from your DB adapter
$rowset = $this->tableGateway->select(function (Select $select) use ($someCondition) {
$table2forInnerJoin = new \Zend\Db\Sql\TableIdentifier('table2Name', 'table2Database');
$select->join(array('table2Name'=>$table2forInnerJoin),"table1Name.id = table2Name.id");
$select->where($someCondition);
});
return $rowset;

Mahbub Alam
- 368
- 2
- 6
-1
If the databases are on the same server and your user have access to them both, you can use full path - SELECT database_name.table_name.col_name...
Otherwise there is no chance for you to join them because of the principle. The join is done by SQL server - which would need to login to the other database...
On Oracle there is a feature called DBLink... which offers abbility to link other table/view from different server. Not sure about MySQL.
To make queries using different adapters you can use:
$select1 = new Zend_Db_Select($adapter1);
$select2 = new Zend_Db_Select($adapter2);
But again, you are still limited in things like union of these two... You can't do that because of the very nature of how the database works

Tomáš Fejfar
- 11,129
- 8
- 54
- 82
-
thx for the reply..but the thing is hw to do with zend....i hv adapters for each connection and by nature i hv to apply the query using one adapter..so hw do i use other db in a seperate adapter... can u give me an example plz? – sha Jan 25 '10 at 17:57
-