我已经叫表“汝来”和这里的展示基于最大(列)具体列结果的MySQL
mysql> select * from nilai;
+------------+------+-----------------+-------+
| nim | nama | matkul | nilai |
+------------+------+-----------------+-------+
| 0911500101 | ADI | ALGORITMA | 90 |
| 0911500101 | ADI | KALKULUS | 65 |
| 0911500101 | ADI | PBO | 90 |
| 0911500101 | ADI | PEMROGRAMAN WEB | 90 |
| 0911500101 | ADI | PTI | 75 |
| 0911500102 | IDA | ALGORITMA | 80 |
| 0911500102 | IDA | KALKULUS | 70 |
| 0911500102 | IDA | PBO | 80 |
| 0911500102 | IDA | PEMROGRAMAN WEB | 85 |
| 0911500102 | IDA | PTI | 90 |
| 0911500103 | EDI | ALGORITMA | 85 |
| 0911500103 | EDI | KALKULUS | 60 |
| 0911500103 | EDI | PBO | 85 |
| 0911500103 | EDI | PEMROGRAMAN WEB | 85 |
| 0911500103 | EDI | PTI | 88 |
| 0911500104 | INA | ALGORITMA | 75 |
| 0911500104 | INA | KALKULUS | 50 |
| 0911500104 | INA | PBO | 75 |
| 0911500104 | INA | PEMROGRAMAN WEB | 80 |
| 0911500104 | INA | PTI | 72 |
| 0911500105 | ANI | ALGORITMA | 92 |
| 0911500105 | ANI | KALKULUS | 68 |
| 0911500105 | ANI | PBO | 80 |
| 0911500105 | ANI | PEMROGRAMAN WEB | 92 |
| 0911500105 | ANI | PTI | 90 |
+------------+------+-----------------+-------+
25 rows in set (0.00 sec)
我想显示“MAX(汝来)”和“分钟(汝来)的全部内容“每个‘matkul’(中,英文科),所以我创建这样的查询它完美地工作:
mysql> select matkul, min(nilai), max(nilai) from nilai group by matkul;
+-----------------+------------+------------+
| matkul | min(nilai) | max(nilai) |
+-----------------+------------+------------+
| ALGORITMA | 75 | 92 |
| KALKULUS | 50 | 70 |
| PBO | 75 | 90 |
| PEMROGRAMAN WEB | 80 | 92 |
| PTI | 72 | 90 |
+-----------------+------------+------------+
5 rows in set (0.03 sec)
但该查询只显示MAX(汝来)和最小(汝来)没有表现出谁max(nilai)和min(nilai)属于这样的最终结果将是这样的
+-----------------+------------+------------+----------------+----------------+
| matkul | min(nilai) | max(nilai) | min belongs to | max belongs to |
+-----------------+------------+------------+----------------+----------------+
| ALGORITMA | 75 | 92 | INA | ANI |
| KALKULUS | 50 | 70 | INA | IDA |
| PBO | 75 | 90 | INA | ADI |
| PEMROGRAMAN WEB | 80 | 92 | INA | ANI |
| PTI | 72 | 90 | INA | ANI/IDA |
+-----------------+------------+------------+----------------+----------------+
5 rows in set (0.03 sec)
所以我做了很多的查询,但没有一个人工作,其中的两个是:
mysql> select matkul, max(nilai), nama from nilai group by matkul;
+-----------------+------------+------+
| matkul | max(nilai) | nama |
+-----------------+------------+------+
| ALGORITMA | 92 | ADI |
| KALKULUS | 70 | ADI |
| PBO | 90 | ADI |
| PEMROGRAMAN WEB | 92 | ADI |
| PTI | 90 | ADI |
+-----------------+------------+------+
5 rows in set (0.00 sec)
这
mysql> select matkul, (select nama from nilai having max(nilai) as maxname), (select
nama from nilai having min(nilai) as minname) from nilai group by matkul;
+-----------------+---------+---------+
| matkul | maxname | minname |
+-----------------+---------+---------+
| ALGORITMA | ADI | ADI |
| KALKULUS | ADI | ADI |
| PBO | ADI | ADI |
| PEMROGRAMAN WEB | ADI | ADI |
| PTI | ADI | ADI |
+-----------------+---------+---------+
5 rows in set (0.08 sec)
那么,如何可以让这一切作品,请给我的建议,在此先感谢! :d
感谢您回复我的信息。我承认我之前没有读过关于group_concat和substring_index的内容。下一次,我会在询问之前深入搜寻。 – januaryananda 2014-09-28 17:55:02
是否有另一种方法使其一切正常? – januaryananda 2014-09-28 17:55:18
n2和n来自哪里?他们是不确定的,不是吗? – januaryananda 2014-09-28 18:16:49