如何在没有不匹配数据的情况下联接多个表?

问题描述 投票:0回答:1

我有这样的查询:

SELECT
    `mhs`.`nama` AS `nama`,
    `jrs`.`nm_jurusan` AS `nm_jurusan`,
    `mkl`.`matakuliah` AS `matakuliah`,
    `mkl`.`nilai_minimal` AS `minimal`,
    `nilai`.`nilai_mkl` AS `nilai_mkl`,
    `dosen`.`nm_dosen` AS `nm_dosen`
FROM `matakuliah` `mkl`
     INNER JOIN `jurusan` `jrs` ON(`mkl`.`kd_jurusan` = `jrs`.`id`)
     INNER JOIN `mahasiswa` `mhs` ON(`jrs`.`id` = `mhs`.`kd_jurusan`)
     INNER JOIN `dosen` ON(`mkl`.`kd_dosen` = `dosen`.`id`)
     INNER JOIN `nilai` ON (`mkl`.`id` =`nilai`.`kd_mkl`)
ORDER BY
    `jrs`.`nm_jurusan`,
    `mhs`.`nama`,
    `mkl`.`matakuliah`

但是输出是这样的:

+----------------+-------------+-------------------------+---------+-----------+------------------+
| nama           | nm_jurusan  | matakuliah              | minimal | nilai_mkl | nm_dosen         |
+----------------+-------------+-------------------------+---------+-----------+------------------+
| Dani SUpirman  | Informatika | APSI                    |      80 |        80 | Deni Sutisna.Spd |
| Dani SUpirman  | Informatika | Konsep Dasar Programing |      90 |        90 | Deni Sutisna.Spd |
| Sumantri Rojak | Informatika | APSI                    |      80 |        80 | Deni Sutisna.Spd |
| Sumantri Rojak | Informatika | Konsep Dasar Programing |      90 |        90 | Deni Sutisna.Spd |
+----------------+-------------+-------------------------+---------+-----------+------------------+

数据Sumantri Rojak不匹配;它一定没有价值。我希望结果是这样的:

+----------------+-------------+-------------------------+---------+-----------+------------------+
| nama           | nm_jurusan  | matakuliah              | minimal | nilai_mkl | nm_dosen         |
+----------------+-------------+-------------------------+---------+-----------+------------------+
| Dani SUpirman  | Informatika | APSI                    |      80 |        80 | Deni Sutisna.Spd |
| Dani SUpirman  | Informatika | Konsep Dasar Programing |      90 |        90 | Deni Sutisna.Spd |
+----------------+-------------+-------------------------+---------+-----------+------------------+
mysql sql inner-join
1个回答
0
投票

请使用以下查询,

SELECT
    distinct
    `mhs`.`nama` AS `nama`,
    `jrs`.`nm_jurusan` AS `nm_jurusan`,
    `mkl`.`matakuliah` AS `matakuliah`,
    `mkl`.`nilai_minimal` AS `minimal`,
    `nilai`.`nilai_mkl` AS `nilai_mkl`,
    `dosen`.`nm_dosen` AS `nm_dosen`
FROM `matakuliah` `mkl`
     INNER JOIN `jurusan` `jrs` ON(`mkl`.`kd_jurusan` = `jrs`.`id`)
     INNER JOIN `mahasiswa` `mhs` ON(`jrs`.`id` = `mhs`.`kd_jurusan`)
     INNER JOIN `dosen` ON(`mkl`.`kd_dosen` = `dosen`.`id`)
     INNER JOIN `nilai` ON (`mkl`.`id` =`nilai`.`kd_mkl`)
WHERE `mhs`.`nama` = 'Dani SUpirman'
ORDER BY
`jrs`.`nm_jurusan`,
`mhs`.`nama`,
`mkl`.`matakuliah`
© www.soinside.com 2019 - 2024. All rights reserved.