如何在SQL中连接两个表?

我有两张桌子。 名称表有一个名为'categories'的外键。 另一个表是包含类别名称的“类别”。 名称表引用类别表中的类别。

所以我使用这个:

$categories = "SELECT name, COUNT(*) category";
$number_of_categories = "SELECT category, COUNT(1) FROM name GROUP BY category";

正如你所看到的,我正在做两个select语句。 我听说加入表可以做魔术,请教我如何在一个SELECT语句中做到这一点。

基本上我想选择类别表中的所有行,然后计算名称表中每个类别的实例数。


SELECT c.name, COUNT(n.category) AS count_in_name_table
FROM categories c
LEFT JOIN name n ON n.category = c.name
GROUP BY c.name

假设类别表的名称是“Category”(带有category_name和category_id),名称表的名称是“Name”(带有name_id和category_id):

SELECT C.category_name, COUNT(N.name_id) FROM Category C 
LEFT JOIN Name N ON C.category_id=N.category_id
GROUP BY C.category_name

分组允许您计算每个类别名称的所有名称条目。


您可以计算子查询中的名称数量:

select  category.name
,       (
        select  count(*)
        from    category
        ) as CategoryCount
,       (
        select  count(*)
        from    name
        where   name.category = category.name
        ) as NameCount
from    category
链接地址: http://www.djcxy.com/p/63797.html

上一篇: How to join two tables together in SQL?

下一篇: Obtain forest out of tree with even number of nodes