对于不同条件下计数
在MySQL中,要实现不同条件的计数,可以使用CASE语句结合聚合函数COUNT。以下是一个示例,假设有一个名为orders的表,其中包含status字段,表示订单的状态,如'completed', 'cancelled', 或 'pending'。
要计算每种状态的订单数量,可以使用以下SQL查询:
SELECT
COUNT(CASE WHEN status = 'completed' THEN 1 END) AS completed_count,
COUNT(CASE WHEN status = 'cancelled' THEN 1 END) AS cancelled_count,
COUNT(CASE WHEN status = 'pending' THEN 1 END) AS pending_count
FROM
orders;
自连接查询
左表和右表是同一个表,根据连接查询条件查询两个表中的数据。
自连接查询的用法:
select c.id, c.title, c.pid, p.title from areas as c inner join areas as p on c.pid = p.id where p.title = '山西省';
说明:自连接查询必须对表起别名
多表查询
在MySQL中,多表查询通常指的是JOIN操作,用于结合两个或多个表中的相关列。JOIN类型主要有:INNER JOIN(内连接)、LEFT JOIN(左连接)、RIGHT JOIN(右连接)和FULL OUTER JOIN(全外连接)。
评论 (0)