mysql - 如何在一条语句中查询多个MYSQL表

标签 mysql

共有 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]。

我已使用 1000 条记录填充 schoolNews_copy 并从我的应用程序运行查询。

我收到超时错误。

这是因为吗?

  1. 查询同一个表会导致问题。
  2. 这完全是错误的做法。 如果不是,最好的方法是什么。

有没有一种方法可以在单个语句中查询每个表并将结果填充到名为 results 的数组中。

所以我需要的结果是一个示例数组:

结果[0]的数据可见设置为1 result[1] 的数据可见设置为 1 result[2] 的数据可见设置为 0

最佳答案

我现在已经按照你所说的重组了表格。使用联接可以在一次查询中获取我需要的所有信息。

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

沃比先生。

关于mysql - 如何在一条语句中查询多个MYSQL表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21173554/

相关文章:

mysql - x <> ANY 的定义

mysql - NOT IN 在 MySQL 上的替代方案

android - 如何将 Android 手机上的 SQLite 数据库与服务器上的 MySQL 数据库同步?

mysql - 括号内选择不为空

mysql - SQL查询以获得最大的 Markdown

php - laravel中如何在数据库表中只添加一条数据

mysql - 使用SQL计算时间

mysql - 标量子查询需要花费大量时间来执行

使用之间的Mysql查询问题

php - 无法在 PHPmyadmin 中创建外键