Mysql將多個查詢結果並列顯示

一、需求

1、已知

  • 表:student
  • 表字段:id(主鍵ID),score(考試分數),student_name(學生姓名)

2、求出

  • 每個學生的考試次數,考試分數大於60分的次數

二、表數據

把李四圈起來,讓大家更好的區分這3位同學的分數。
在這裏插入圖片描述

三、查詢語句

SELECT
	#student_name取b表的(如果取的a表的student_name,該同學又恰好沒一個及格,student_name就爲NULL了)
	b.`student_name`,
	b.total_number,
	a.number
FROM
	(
		SELECT
			`student_name`,
			count(id) AS number
		FROM
			`student`
		WHERE
			score > 60
		GROUP BY
			`student_name`
	) AS a
#右鏈接,以考試總次數數據爲準,如果用JOIN或者LEFT JOIN,王五這條數據不滿足score > 60,就只會查出2條數據;
#當然,如果把b表連a表,就可以用LEFT JOIN了,JOIN還是不能用
RIGHT JOIN (
	SELECT
		`student_name`,
		count(id) AS total_number
	FROM
		`student`
	GROUP BY
		`student_name`
) AS b ON a.`student_name` = b.`student_name`

四、查詢結果

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章