请教一个 SQL 的问题,来个大佬帮忙丁真下

47次阅读

共计 856 个字符,预计需要花费 3 分钟才能阅读完成。

SELECT
	p.project_code AS 项目编码,
	p.project_name AS 项目名称,
	count(e.id) AS 建筑数量,
	count(d.id) AS 设备数量 
FROM
	`emp_project` p
	LEFT JOIN `architecture` e ON p.id = e.`project_id` 
	AND e.`is_active` = 1 
	AND e.`level` = 30 
	AND e.`source_type` = 'Z'
	LEFT JOIN `project_device` d ON p.id = d.project_id 
	AND d.is_active = 1 
	AND d.device_type IN (1, 2, 3, 4) 
WHERE
	p.`is_active` = 1 
	AND p.`source_type` = 'Z' 
GROUP BY
	p.id
SELECT
	p.project_code AS 项目编码,
	p.project_name AS 项目名称,
	en.encount AS 建筑数量,
	de.decount AS 设备数量 
FROM
	`emp_project` p
	LEFT JOIN (SELECT `project_id`, count(*) AS encount FROM `architecture` WHERE `level` = 30 AND `is_active` = 1 
	AND `source_type` = 'Z' GROUP BY `project_id` ) en ON p.id = en.`project_id`
	LEFT JOIN (
	SELECT
		`project_id`,
		count(*) AS decount 
	FROM
		`project_device` 
	WHERE
		`is_active` = 1 
		AND `device_type` IN (1, 2, 3, 4) 
	GROUP BY
		`project_id` 
	) de ON p.id = de.project_id 
WHERE
	p.`is_active` = 1 
	AND p.`source_type` = 'Z'

这两段 sql 在同一个库里执行,结果天差地别,但是从连接和分组以及查询条件来看,感觉不出来有什么差异,大佬们能不能一眼丁真帮看下原因

正文完
 0