2014-01-16 41 views
0

有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並從我的應用運行查詢。

我收到超時錯誤。

這是因爲。

  1. 查詢同一個表導致問題。
  2. 這是一起錯誤的方法。 如果不是什麼是最好的辦法。

有沒有辦法在單個語句中查詢每個表並將結果填充到名爲results的數組中。

因此,我所需要的結果是一個示例陣列:

結果[0]有數據可見設置爲1個 結果[1]具有數據可見設置爲1個 結果[2]具有數據可見設置爲0

+1

你爲什麼要把它分成30張桌子?爲什麼不把1個「類別」字段鏈接到類別表的表格? –

+0

另外,你用什麼框架來做數據庫的東西? cObj從哪裏來? –

+2

A)**不要**將其分成單獨的表格,查詢單個表格要容易得多。 B)請不要將您的部分問題作爲外部資源發佈。隨着時間的推移,這些將變得無法使用,你的問題最終會變得毫無意義。 – tadman

回答

0

我已經按照你的說法重組了表格。使用連接可以在一個查詢中獲得我需要的所有信息。

SELECT * FROM categories INNER JOIN allNews on allNews.catID = categories.catID WHERE categories.visible = 1 AND categories.siteID ='+ p.siteID;

MrWarby。

相關問題