2014-10-29 40 views
-1

我有两个相同的表(除了名称),并试图运行下面的时候,我得到Error Code: 1054. Unknown column 'pages_jj.pageid' in 'where clause'相同的表 - 在未知列Where子句

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

请帮帮忙!

回答

1

你必须在pages_jj表添加到FROM子句,如:

SELECT pages.pageid,pages.maintext FROM databasename.pages, databasename.pages_jj 
WHERE pages.pageid=pages_jj.pageid LIMIT 50000; 
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;