选择一个语句,该语句计算一个表中不同条目的总数,具体取决于另一个表中的数据

时间:2012-07-15 00:04:42

标签: mysql database

我有两个表:DATA和USERS

USERS

id       sqft       postal       province       city
==========================================================
1          1          Y7R          BC          Vancouver
2          2          Y7R          BC          Vancouver
3          1          L5B          ON          Toronto

DATA

id     uid     power
=======================
1       1       1000
2       2       1300
3       1       1500
表格中的

uid与表USERS中的id匹配

我希望能够计算DATA中postal code Y7R sqft 1 <的数据中不同的uid数量/ p>

4 个答案:

答案 0 :(得分:0)

SELECT COUNT(id) 
   FROM `DATA` AS `d` 
   INNER JOIN `USERS` AS `u` 
   ON u.id=d.uid 
   WHERE u.postal='Y7R' AND u.sqft=1 
   GROUP BY u.id;

如果你有一个合适的架构,它们应该是不同的,如果是这样,只需删除group by子句。

答案 1 :(得分:0)

SELECT COUNT(DISTINCT D.UID) FROM DATA D 
LEFT JOIN USERS U ON D.UID=U.ID 
WHERE U.POSTAL='Y7R' AND U.SQFT=1)

如果您需要明确的

答案 2 :(得分:0)

您可以使用此解决方案:

SELECT COUNT(DISTINCT a.id)
FROM   USERS a
JOIN   DATA b ON a.id = b.uid
WHERE  a.sqft = 1 AND
       a.postal = 'Y7R'

答案 3 :(得分:0)

试试这个:

SELECT COUNT(DISTINCT a.id)
  FROM   USERS a
            INNER JOIN  DATA b 
                ON a.id = b.uid
 WHERE  a.sqft = 1 AND
        a.postal = 'Y7R'