Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL-count内部连接查询_Php_Mysql_Count - Fatal编程技术网

Php MySQL-count内部连接查询

Php MySQL-count内部连接查询,php,mysql,count,Php,Mysql,Count,我有下面的查询,它的工作方式与我希望的一样,只是我希望返回一个伪(?)列,其中包含每个属性从内部联接匹配的单元数。其中p.team=u.team和u.deleted='0000-00-00:00:00'和u.rates!='0'. 我可以在同一个查询中执行此操作吗 一处房产有几个单元。它们都与“团队”(想想用户名)相连 因为您只有一个聚合,而且似乎是按属性行进行分组,所以这应该相对容易。你的意思是这样的(未经测试) 根据您的意思,您可能需要执行COUNT(DISTINCT(u.id))。从你的

我有下面的查询,它的工作方式与我希望的一样,只是我希望返回一个伪(?)列,其中包含每个属性从内部联接匹配的单元数。其中p.team=u.team和u.deleted='0000-00-00:00:00'和u.rates!='0'. 我可以在同一个查询中执行此操作吗

一处房产有几个单元。它们都与“团队”(想想用户名)相连


因为您只有一个聚合,而且似乎是按
属性
行进行分组,所以这应该相对容易。你的意思是这样的(未经测试)

根据您的意思,您可能需要执行
COUNT(DISTINCT(u.id))
。从你的问题很难判断


作为参考,“困难的方法”是创建一个子查询来进行计数。您可能需要执行此操作来计算多个不相关的项目,或者按一个项目分组,然后按另一个项目计数:

SELECT DISTINCT p.title, p.state, p.city, p.regionID, p.team, p.type, p.lat, p.lng,
                p.url_title, uuCount.number_of_units
FROM Properties AS p
INNER JOIN Units AS u ON p.team = u.team
INNER JOIN Rates AS r ON p.team = r.team
INNER JOIN Photos AS ph ON p.team = ph.team
AND p.public   = '1'
AND u.rates   != '0'
AND p.deleted  =  '0000-00-00 00:00:00'
AND u.deleted  =  '000-00-00 00:00:00'
AND r.deleted  =  '000-00-00 00:00:00'
AND ph.deleted =  '000-00-00 00:00:00'
INNER JOIN 
(
    SELECT uu.team, COUNT(*) AS number_of_units
    FROM Units uu
    WHERE uu.deleted = '0000-00-00 00:00:00'
    AND u.rates != '0'
    GROUP BY uu.team
) AS uuCount ON p.team = uuCount.team
GROUP BY p.id
ORDER BY p.created ASC
SELECT p.title, p.state, p.city, p.regionID, p.team, p.type, p.lat, p.lng, 
       p.url_title , COUNT(u.*) AS number_of_units
FROM Properties AS p
INNER JOIN Units AS u ON p.team = u.team
INNER JOIN Rates AS r ON p.team = r.team
INNER JOIN Photos AS ph ON p.team = ph.team
AND p.public   = '1'
AND u.rates   != '0'
AND p.deleted  =  '0000-00-00 00:00:00'
AND u.deleted  =  '000-00-00 00:00:00'
AND r.deleted  =  '000-00-00 00:00:00'
AND ph.deleted =  '000-00-00 00:00:00'
GROUP BY p.id, p.title, p.state, p.city, p.regionID, p.team, p.type, p.lat, p.lng, p.url_title
ORDER BY p.created ASC
SELECT DISTINCT p.title, p.state, p.city, p.regionID, p.team, p.type, p.lat, p.lng,
                p.url_title, uuCount.number_of_units
FROM Properties AS p
INNER JOIN Units AS u ON p.team = u.team
INNER JOIN Rates AS r ON p.team = r.team
INNER JOIN Photos AS ph ON p.team = ph.team
AND p.public   = '1'
AND u.rates   != '0'
AND p.deleted  =  '0000-00-00 00:00:00'
AND u.deleted  =  '000-00-00 00:00:00'
AND r.deleted  =  '000-00-00 00:00:00'
AND ph.deleted =  '000-00-00 00:00:00'
INNER JOIN 
(
    SELECT uu.team, COUNT(*) AS number_of_units
    FROM Units uu
    WHERE uu.deleted = '0000-00-00 00:00:00'
    AND u.rates != '0'
    GROUP BY uu.team
) AS uuCount ON p.team = uuCount.team
GROUP BY p.id
ORDER BY p.created ASC