有30個表格(類別)都具有相同的結構,存儲具有siteID字段的新聞項目以在特定客戶端上進行過濾。 客戶端通過將字段可見(tinyint)字段設置爲1或0來選擇它們顯示哪些表(類別)。如何在一個語句中查詢多個MYSQL表格
我有以下測試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;
}
所以我具有與每個表中的結果在結果陣列[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]。
我已經用1000條記錄填充了schoolNews_copy並從我的應用運行查詢。
我收到超時錯誤。
這是因爲。
- 查詢同一個表導致問題。
- 這是一起錯誤的方法。 如果不是什麼是最好的辦法。
有沒有辦法在單個語句中查詢每個表並將結果填充到名爲results的數組中。
因此,我所需要的結果是一個示例陣列:
結果[0]有數據可見設置爲1個 結果[1]具有數據可見設置爲1個 結果[2]具有數據可見設置爲0
你爲什麼要把它分成30張桌子?爲什麼不把1個「類別」字段鏈接到類別表的表格? –
另外,你用什麼框架來做數據庫的東西? cObj從哪裏來? –
A)**不要**將其分成單獨的表格,查詢單個表格要容易得多。 B)請不要將您的部分問題作爲外部資源發佈。隨着時間的推移,這些將變得無法使用,你的問題最終會變得毫無意義。 – tadman