2011-02-06 71 views
1

我有一个数据库,其中包含所有的用户信息,包括名称。然后是第二个包含用户注释的数据库,它包含#id但不包含名称。我正在做的检索用户笔记的查询没有名称,因此它所做的全部工作都是显示笔记,然后在它下面,我正在执行另一个查询以使用常见#id从第一个数据库检索名称。但它不会显示。如何显示来自两个不同查询的值?

有没有办法可以在一个这样的查询?请帮忙。谢谢。

回答

1

用途:

SELECT u.name, 
      n.* 
    FROM DB2.NOTES n 
LEFT JOIN DB1.USERS u ON n.id = u.id 
ORDER BY u.name 

假设连接凭据访问两个数据库,你在表名的前面,并单独用一段前缀数据库名。

LEFT JOIN将显示两个用户和没有用户关联的注释。这是一个good primer on JOINs

1

您可能需要显示代码,但可以在同一主机上针对两个数据库(或模式)编写查询,只需使用数据库名称(例如,

SELECT db1.user.id, db1.user.name, db2.userinfo.notes 
FROM db1.user 
INNER JOIN db2.userinfo ON(db1.user.id=db2.userinfo.id) 

您正在使用的连接凭据必须能够访问这两个数据库对于这个课程的工作。

相关问题