[英]how to query several MYSQL tables in one statement
有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]和result [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
我現在按照您所說的重組了桌子。 使用聯接可以在一個查詢中獲得我需要的所有信息。
選擇*從categories
聯接allNews
上的allNews.catID = Categories.catID WHERE category.visible = 1 AND Categories.siteID ='+ p.siteID;
沃比先生。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.