相同的表格 - Where子句中的未知列

时间:2014-10-29 10:19:36

标签: mysql

我有两个相同的表(除了名称),当我尝试运行以下内容时,我得到Error Code: 1054. Unknown column 'pages_jj.pageid' in 'where clause'

SELECT pages.pageid,pages.maintext FROM databasename.pages 
WHERE pages.pageid=pages_jj.pageid LIMIT 50000;

请帮忙!

2 个答案:

答案 0 :(得分:1)

您必须将pages_jj表添加到FROM子句,例如:

SELECT pages.pageid,pages.maintext FROM databasename.pages, databasename.pages_jj 
WHERE pages.pageid=pages_jj.pageid LIMIT 50000;

答案 1 :(得分:0)

您需要在FROM子句中提及两个表,否则它将不知道pages_jj是什么。

SELECT pages.pageid,pages.maintext FROM databasename.pages, databasename.pages_jj
WHERE pages.pageid=pages_jj.pageid LIMIT 50000;

但请注意,这将返回两个表的交叉产品。如果 pageid 值在表 pages_jj 中是唯一的,那么没问题。但是,如果 pages_jj 可以包含多个具有相同 pageid 的行,那么页面中的行将被选择多次,因为 pages_jj 中的 pagesid ...这可能是也可能不是您所期望的。

要在页面中每个匹配行只发生一次,请使用以下命令:

SELECT pages.pageid, pages.maintext FROM databasename.pages
WHERE EXISTS (SELECT pageid FROM databasename.pages_jj WHERE pages.pageid=pages_jj.pageid) LIMIT 50000;