如何显示来自两个不同查询的值?

时间:2011-02-06 17:48:19

标签: sql mysql join

我有一个包含所有用户信息的数据库,包括名称。然后是第二个包含用户注释的数据库,它包含#id但不包含名称。我正在检索用户注释的查询没有名称所以它所做的只是显示注释,然后在它下面我正在做另一个查询以使用公共#id从第一个数据库中检索名称。但它不会显示。

有没有办法可以在一个查询中执行此查询?请帮忙。谢谢。

2 个答案:

答案 0 :(得分: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 :(得分: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)

您要连接的凭据必须能够访问这两个数据库才能实现此目的。