我有一个包含所有用户信息的数据库,包括名称。然后是第二个包含用户注释的数据库,它包含#id但不包含名称。我正在检索用户注释的查询没有名称所以它所做的只是显示注释,然后在它下面我正在做另一个查询以使用公共#id从第一个数据库中检索名称。但它不会显示。
有没有办法可以在一个查询中执行此查询?请帮忙。谢谢。
答案 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)
您要连接的凭据必须能够访问这两个数据库才能实现此目的。