我可以从home_id
获得server_homes
的计数,但是当我创建NATURAL JOIN user_homes
时(此表具有相同的列home_id
)
count
的结果为多个(如果实际结果为2,则count
为4)。
我使用的代码:
return $this->resultQuery('SELECT COUNT(home_id) AS total FROM `'.$this->table_prefix.'server_homes`
'.($search_field ? '
NATURAL JOIN `'.$this->table_prefix.'user_homes`
NATURAL JOIN `'.$this->table_prefix.'remote_servers`
NATURAL JOIN `'.$this->table_prefix.'home_ip_ports`
' : '').'
');
答案 0 :(得分:0)
所以这里的问题是home_id
在所有表中都不是唯一的。我假设在同一栋房子里会有多个家庭IP端口或多个远程服务器。这意味着您的总行数将是#server homes + #dupes user homes + #dupes remote servers + #dupes home IP ports。
解决这个问题的方法是确保你只计算一次ID:
SELECT COUNT( DISTINCT( `home_id` ) ) FROM
-- Yada yada