访问不同数据库中的表

时间:2012-12-10 15:31:29

标签: mysql

似乎是一个微不足道的问题,但对我来说不起作用。我需要从db A(新闻)获取数据并针对db B(新闻备份)进行检查。它们位于同一个地方,不需要进行身份验证(至少我认为)。当我尝试使用第二个

访问DB时,它会给我error 1146, table "news.news" doesnt exist.
SELECT B.`comment`
FROM news A, `news-backup`.`data` B
WHERE B.source = A.rss_atom.id and B.feed = "rss-atom"

rss_atomdata是表格

3 个答案:

答案 0 :(得分:2)

您需要在FROM子句中指定数据库名称和表,请尝试以下操作:

SELECT B.comment
FROM news.rss_atom A, news-backup.data B
WHERE B.source = A.id AND B.feed="rss-atom"

我希望我的表格结构正确。

答案 1 :(得分:1)

它们位于不同的数据库中,除非您使用use database A(或B)指定更改,否则无法查看所有对象。此外,您可以尝试将数据库名称设置为您要查询的表的前缀如果数据库可以通过相同的连接可用,并且用户连接被授予足够的权限来查询两个数据库上的表。

这个答案可能会有所帮助。 How do you connect to multiple MySQL databases on a single webpage?

答案 2 :(得分:1)

SELECT B.`comment`
FROM `news`.`rss_atom` A, `news-backup`.`data` B
WHERE B.source = A.rss_atom.id and B.feed = "rss-atom"

猜测,如果您正在使用新闻数据库,那么

SELECT B.`comment`
FROM `rss_atom` A, `news-backup`.`data` B
WHERE B.source = A.rss_atom.id and B.feed = "rss-atom"

新闻数据库中的任何新闻都不是一个好消息。