我是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
,但鉴于情况我不知道如何。
答案 0 :(得分:2)
假设您正在运行的用户拥有查看两个数据库的正确权限,那么您应该可以通过使用'dbname.tablename'语法连接表来实现此目的:
select t1.*, t2.*
from database1.table1 t1
LEFT OUTER JOIN database2.table2 t2 ON t1.id = t2.id
这将为您提供表A中的所有行,并且表b中存在匹配的行,其中也存在匹配的行(如果没有匹配的行,则为空)。