有30个表(类别),它们都具有相同的结构,使用siteID字段存储新闻条目,以便在特定客户端上进行筛选。客户端通过将可见字段(Tinyint)字段设置为1或0来选择它们显示的表(类别)。
我有下面的测试MYSQL,它的工作正常。我使用的是Applicationcraft.com,所以语法与标准MYSQL不同,但是您可以看到查询。
function _getAllData(cObj,p){
var result = [];
console.log('started');
selectObj=cObj.select().from('schoolNews').order('newsIDDESC').where('siteID=?',p.siteID);
result[0] = cObj.exec(selectObj);
selectObj=cObj.select().from('schoolDocs').order('newsIDASC').where('siteID=?',p.siteID);
result[1] = cObj.exec(selectObj);
return result;
}因此,我有一个数组,其中包含结果中每个表的结果& result1。
因此,我创建了以下内容:
function _getAllData(cObj,p){
var result = [];
console.log('started');
selectObj=cObj.select().from('schoolNews').order('newsIDDESC').where('siteID=?',p.siteID).where('visible=?',1);
result[0] = cObj.exec(selectObj);
selectObj=cObj.select().from('schoolDocs').order('newsIDASC').where('siteID=?',p.siteID).where('visible=?',1);
result[1] = cObj.exec(selectObj);
selectObj=Obj.select().from('schoolNews_copy').order('newsIDDESC').where('siteID=?',p.siteID).where('visible=?',1);
result[2] = cObj.exec(selectObj);
selectObj=cObj.select().from('schoolNews_copy').order('newsIDDESC').where('siteID=?',p.siteID).where('visible=?',1);
result[3] = cObj.exec(selectObj);
selectObj=cObj.select().from('schoolNews_copy').order('newsIDDESC').where('siteID=?',p.siteID;
result[4] = cObj.exec(selectObj).where('visible=?', 1); 直到result30.
我已经用1000条记录填充了schoolNews_copy,并从我的应用程序中运行了查询。
我得到了一个超时错误。
这是因为。
是否有方法查询单个语句中的每个表并将结果填充到名为结果的数组中。
因此,我需要的结果是一个示例数组:
结果将数据可见集设置为1 result1将数据可见集设置为1 result2将数据可见集设置为0
发布于 2014-01-20 12:42:00
正如你所说的,我现在已经调整了桌子的结构。使用联接可以在一个查询中获得我需要的所有信息。
选择*从categories内部连接allNews on allNews.catID = categories.catID,其中categories.visible =1和categories.siteID = '+p.siteID;
MrWarby。
https://stackoverflow.com/questions/21173554
复制相似问题