It's perfectly possible to join tables from different databases, as long
as the databases are managed by the same server.  Just qualify your
table names with a leading database name.

For example, a join between two tables in the same database might
be written like this:

SELECT t1.col1, t2.col2
FROM t1, t2
WHERE t1.id1 = t2.id2;

If instead t1 is in db1 and t2 is in db2, just write it like this:

SELECT db1.t1.col1, db2.t2.col2
FROM db1.t1, db2.t2
WHERE db1.t1.id1 = db2.t2.id2;


At 15:42 -0800 4/5/02, Richard wrote:
>You are talking about "heterogeneous queries".  I believe it is Delphi which
>achieves this feature for you, not the databases themselves.  Here 
>is a quote from
>the Delphi help system:
>
>"Delphi supports heterogeneous queries, that is, queries made 
>against tables in
>more than one database. A heterogeneous query may join tables on different
>servers, and even different types of servers. For example, a 
>heterogeneous query
>might involve a table in a Oracle database, a table in a Sybase 
>database, and a
>local dBASE table."
>
>Delphi parses the SQL code, sends the appropriate query to each 
>database, and then
>assembles the result sets locally. The syntax example they provide 
>is as follows:
>
>SELECT Customer.CustNo, Orders.OrderNo
>FROM ":Oracle1:CUSTOMER"
>   JOIN ":Sybase1:ORDERS"
>     ON (Customer.CustNo = Orders.CustNo)
>WHERE (Customer.CustNo = 1503)
>
>The database names such as Sybase1 would be ODBC DSN or BDE (Borland Database
>Engine) database alias names, or database object (TDatabase) names.
>
>It sounds to me like it could be terribly inefficient depending on 
>your query and
>whether or not Delphi queries the multiple databases concurrently or 
>sequentially.
>However, I suggest you just try it if you can, and let us know what you find.
>
>--Richard
>
>
>>  Can you please tell me, is it possible to do queries that join 
>>MySql tables that
>>  are in different databases?
>>
>>  I have a couple of Delphi database programs that use Paradox tables.  I'd
>>  like to move them over to something else that is faster.  These 
>>programs are set
>>  up so that they have a shared database on our server, and then a 
>>local database
>>  on each machine.  I have queries that have to be able to join tables in the
>>  local and the server db's.  I tried this with Interbase, and it 
>>doesn't support
>>  cross-database joins.  I'm wondering if MySql can do this?
>>
>>  If so, how would you modify the below query to show the different databases?
>>  Specifically, how would you specify the database that the table is in?
>>
>>  SELECT D.BkID, D.Chap, D.Vrs, D.RTypID
>>  FROM ":OntData:ScrpUF.DB" D
>>  INNER JOIN ":OntLclData:LclSrchBkParam.DB" d1
>>  ON (d1.BkID = D.BkID)
>>  WHERE D.ScrpUF LIKE "%search text%"
>>
>>  *** If this is not possible, can this be accomplished with a UNION by
>>  selecting all the records in the local table, and joining the result set
>>  with the shared table?  If so, how?
>>
>>  Any help will be *greatly, greatly* appreciated.
>>
>>  In Christ,
>>
>>  Peter, hierodeacon
>>
>>  ----
>>  Dormition Skete
>>  A Monastery of the Russian Orthodox Autonomous Church
>>  http://www.BuenaVistaCO.com/GOC
>  > http://www.RussianOrthodoxAutonomousChurchInAmerica.com


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to