MySql。我怎样才能从2个表中得到计数

标签 mysql sql

我有 2 个表,TableA 和 TableB

表A

IdA | Date       | Description  
--- | ---------- | -----------
1   | 2017-01-01 | Sometext1
2   | 2017-01-01 | Sometext2
3   | 2017-01-02 | Sometext3
4   | 2017-01-03 | Sometext4
<小时/>

表B

IdB | IdA | Type
--- | --- | ----
1   | 1   | A  
2   | 1   | A
3   | 2   | A
4   | 2   | A
5   | 2   | B 
6   | 3   | B
7   | 4   | A
<小时/>

我怎样才能获得这样的值(value):

Count(IdA) | Type        
---------- | ---- 
3          | A 

我尝试使用 INNER 或 LEFT JOIN 进行编码

SELECT COUNT(tablea.IdA), tableb.Type
FROM tablea INNER JOIN tableb
ON tablea.IdA=tableb.IdA
WHERE tableb.Type='A'

但它总是让我这样

Count(IdA) | Type
---------- | ----
5          | A

我只想使用 TableB 中的 WHERE 子句对 TableA 行进行计数。 可以做这样的事情吗?

最佳答案

您可能需要COUNT(DISTINCT col)

试试这个:

SELECT 
    COUNT(DISTINCT a.IdA), b.Type
FROM
    tablea a
        INNER JOIN
    tableb b ON a.IdA = b.IdA
WHERE
    b.Type = 'A'
GROUP BY b.type

关于MySql。我怎样才能从2个表中得到计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41918341/

相关文章:

javascript - 使用提交按钮上的 javascript 更新 php 中的 SQL 语句

c# - 版本控制算法

sql - 在 firebird sql 中使用整数作为日期

带变量的 Python-SQL 查询

php - 将变量从 AJAX 传递到 PHP 以进行 MySQL 查询时出错

c# - 删除表时 ExecuteNonQuery 会返回什么?

php - 数据库选择返回空结果

mysql - 合并MySQL多表删除语句

MySQL:如何从命令行传递参数?

sql - 显示存储过程