有30个表(类别)都具有相同的结构,存储具有siteID字段的新闻项以在特定客户端上进行过滤。 客户端通过将字段visible(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;
}
所以我有一个数组,其中包含result [0]&中每个表的结果。导致[1]。
所以我创建了以下内容:
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);
结果[30]。
我已经在schoolNews_copy中填充了1000条记录并从我的应用程序运行查询。
我收到了一个超时错误。
这是因为。
有没有办法查询单个语句中的每个表,并将结果填充到名为results的数组中。
所以我需要的结果是一个示例数组:
result [0]将数据可见设置为1 result [1]将数据可见设置为1 result [2]将数据可见设置为0
答案 0 :(得分:0)
我现在按照你的说法对桌子进行了重组。使用联接可以在一个查询中获得我需要的所有信息。
SELECT * FROM categories
INNER JOIN allNews
on allNews.catID = categories.catID WHERE categories.visible = 1 AND categories.siteID ='+ p.siteID;
MrWarby。