MySql:如何在每行搜索第二个数据库表时从一个数据库中读取表?

时间:2011-08-23 17:31:24

标签: mysql database search join

我是MySql / PHP的新手。

必须读取并显示Database1.table1中的每一行。它包含一个列,其中包含我需要传递给Database2.table2的搜索项,并处理每行读取的返回值。目前我正在为db1.table1中的每一行建立与Database2.table2的新连接,这实际上很慢且效率很低。我无法改变表结构。

谢谢!

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是读取和显示的表,如果ID为正匹配,则读取db2 table2并显示信息。 ID仅在db2 table2中是唯一的,db1 table1具有多格式列,因此它可能是也可能不是ID,以及这些行可能具有重复ID。希望这能让我更好地理解我需要的东西。再次感谢!

有人建议使用EXISTS,但鉴于情况我不知道如何。

1 个答案:

答案 0 :(得分:2)

假设您正在运行的用户拥有查看两个数据库的正确权限,那么您应该可以通过使用'dbname.tablename'语法连接表来实现此目的:

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

这将为您提供表A中的所有行,并且表b中存在匹配的行,其中也存在匹配的行(如果没有匹配的行,则为空)。