[mysql]选择 4 不同命名列跨 4 表并返回所有的计数

标签: MySQL PHP
发布时间: 2017/1/9 21:44:31
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我一直努力这样做天,我想把从四个表,感谢所有帮助 inactiveItems() 的计算。

数据库

  • wcx_articles
  • wcx_videos
  • wcx_apps
  • wcx_links

每个表的中相应的 _active 列

  • article_active
  • video_active
  • app_active
  • link_active

_active 是一个开关 1 或 0

这是我当前的函数,它返回 0

 public function inactiveItems() {

$query = 
"SELECT * FROM wcx_articles,wcx_videos,wcx_apps,wcx_links 
WHERE wcx_articles.article_active='0' AND wcx_videos.video_active='0' 
AND wcx_apps.app_active='0' AND wcx_links.link_active='0'";

 if( $this->num_rows( $query ) > 0 ) {  
     $count = $this->num_rows($query);
     return $count;
     }      
 }

 public function num_rows( $query ) {
    $query = $this->link->query( $query );
    if( mysqli_error( $this->link ) ) {
        $this->log_db_errors( mysqli_error( $this->link ), $query, 'Fatal' );
        return mysqli_error( $this->link );
    }
    else {
        return mysqli_num_rows( $query );
    }
    mysqli_free_result( $query );
}

解决方法 1:

你吃过这个︰

SELECT * inactives FROM wcx_articles WHERE article_active = 0
UNION
SELECT * inactives FROM wcx_videos WHERE video_active = 0

你要做这的所有其他表,但它应该给你一个想法如何实现你想要什么。这也意味着, wcx_ 必须具有相同的列名称。

赞助商