MySQL内部连接2个表,并根据表1中的ID对表2进行计数
我有两张桌子,想把两张都合起来。然后,如果表A中的一个或多个数据在表B上具有相同的ID,我想从表B中获得计数合计结果 我已经这样尝试过了,但它只给了我两个结果,而不是我想要的:MySQL内部连接2个表,并根据表1中的ID对表2进行计数,mysql,sql,inner-join,Mysql,Sql,Inner Join,我有两张桌子,想把两张都合起来。然后,如果表A中的一个或多个数据在表B上具有相同的ID,我想从表B中获得计数合计结果 我已经这样尝试过了,但它只给了我两个结果,而不是我想要的: SELECT table_a.*, table_b.*, count(*) as total FROM table_a, table_b WHERE table_b.id_tblA = table_a.id_tblA GROUP BY table_b.id_tblB 当需要时,
SELECT
table_a.*,
table_b.*,
count(*) as total
FROM
table_a,
table_b
WHERE
table_b.id_tblA = table_a.id_tblA
GROUP BY
table_b.id_tblB
当需要时,应使用左连接和大小写
SELECT
table_a.id_tblA,
table_a.Name,
sum(case when table_b.id_tblB is null then 0 else 1 end) total
FROM table_a
left join table_b on table_b.id_tblA = table_a.id_tblA
group by table_a.id_tblA, table_a.Name
当需要时,应使用左连接和大小写
SELECT
table_a.id_tblA,
table_a.Name,
sum(case when table_b.id_tblB is null then 0 else 1 end) total
FROM table_a
left join table_b on table_b.id_tblA = table_a.id_tblA
group by table_a.id_tblA, table_a.Name
试试这个
SELECT
table_a.id_tblA, table_a.tblA_name,
(SELECT count(*) FROM table_b WHERE table_b.id_tblA = table_a.id_tblA)
FROM
table_a;
试试这个
SELECT
table_a.id_tblA, table_a.tblA_name,
(SELECT count(*) FROM table_b WHERE table_b.id_tblA = table_a.id_tblA)
FROM
table_a;
你需要
分组依据
@PM77-1我已经尝试了分组依据,但仍然不适用于平均内部联接不会返回指定的结果。我们可以使用一个外部连接,一个GROUPBY和一个聚合(count或sum)。作为另一个选项,我们可以在选择列表中使用相关子查询。您需要分组依据
@PM77-1我已经尝试了分组依据,但仍然不适用于平均内部联接不会返回指定的结果。我们可以使用一个外部连接,一个GROUPBY和一个聚合(count或sum)。作为另一个选项,我们可以在选择列表中使用相关子查询。缺少table_b on
afterleft join
尝试添加缺少的“table_b on”,但仍然无法用于me@JhonnyJr. : 还要更改选择列表中的第三个表达式SUM(当table_b.id_tblB为NULL时,则为0,否则为1 END)作为总计
缺少table_b on
在左联接之后
尝试添加缺少的“table_b on”,但仍不适用于me@JhonnyJr. : 还要更改选择列表中的第三个表达式<代码>总计(当表_b.id _tblB为空时,则为0,否则为1结束)