我的数据库中有重复错误,当我输入 2 条记录时,我想使用 SELECT 命令通过终端显示它们,并在两个表之间连接,它们显示 4 条记录。这里我使用 no_servis 和 kode_pelanggan 的 2 个自动代码 前一列很好,当我更改数据库中的一列然后将其返回到原始列时。相反,像这样的错误
MariaDB [sijarvis]> SELECT * FROM tb_penerimaan;
| no_servis | tgl_terima | kode_pelanggan | nama_perangkat | model_perangkat | no_model | keluhan | kelengkapan | dp | status | solusi | harga | presentase |
| SER00000001 | 2019-01-25 | PE000001 | ASUS | Elitebook 8460p | CVT123 | projek | meh | 5000 | Di Servis | Instal Office | 150000 | 15 |
| SER00000002 | 2019-01-28 | PE000002 | ASUS | X453SA | asdasd | nsdklfnskslii | nflsfndklnskln | 10012 | Di Servis | | 0 | |
+-------------+------------+----------------+----------------+-----------------+----------+---------------+----------------+-------+-----------+---------------+--------+------------+
2 rows in set (0.00 sec)
MariaDB [sijarvis]> SELECT * FROM tb_pelanggan;
+----------------+-------+--------+-------------+--------+
| kode_pelanggan | nama | alamat | no_hp | member |
+----------------+-------+--------+-------------+--------+
| PE000001 | admin | Hatimu | 05628675848 | member |
| PE000002 | Anggi | balen | 987304209 | member |
+----------------+-------+--------+-------------+--------+
2 rows in set (0.00 sec)
MariaDB [sijarvis]> SELECT tb_penerimaan.* , tb_pelanggan.nama FROM tb_penerimaan, tb_pelanggan;
+-------------+------------+----------------+----------------+-----------------+----------+---------------+----------------+-------+-----------+---------------+--------+------------+-------+
| no_servis | tgl_terima | kode_pelanggan | nama_perangkat | model_perangkat | no_model | keluhan | kelengkapan | dp | status | solusi | harga | presentase | nama |
+-------------+------------+----------------+----------------+-----------------+----------+---------------+----------------+-------+-----------+---------------+--------+------------+-------+
| SER00000001 | 2019-01-25 | PE000001 | ASUS | Elitebook 8460p | CVT123 | projek | meh | 5000 | Di Servis | Instal Office | 150000 | 15 | admin |
| SER00000002 | 2019-01-28 | PE000002 | ASUS | X453SA | asdasd | nsdklfnskslii | nflsfndklnskln | 10012 | Di Servis | | 0 | | admin |
| SER00000001 | 2019-01-25 | PE000001 | ASUS | Elitebook 8460p | CVT123 | projek | meh | 5000 | Di Servis | Instal Office | 150000 | 15 | Anggi |
| SER00000002 | 2019-01-28 | PE000002 | ASUS | X453SA | asdasd | nsdklfnskslii | nflsfndklnskln | 10012 | Di Servis | | 0 | | Anggi |
+-------------+------------+----------------+----------------+-----------------+----------+---------------+----------------+-------+-----------+---------------+--------+------------+-------+
4 rows in set (0.00 sec)
为什么当我加入两个表时显示4条记录? 这是我从 tambah_transaksi.php 插入的查询
<?php
include('koneksi.php');
// Proses input data
$no_servis = $_POST['no_servis'];
$tgl_terima = $_POST['tgl_terima'];
$nama_perangkat = $_POST['nama_perangkat'];
$model_perangkat = $_POST['model_perangkat'];
$no_model = $_POST['no_model'];
$keluhan = $_POST['keluhan'];
$kelengkapan = $_POST['kelengkapan'];
$dp = $_POST['dp'];
$kode_pelanggan = $_POST['kode_pelanggan'];
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
$nohp = $_POST['no_hp'];
$member = $_POST['member'];
$hak_akses = $_POST['hak_akses'];
$password = $_POST['password'];
$status = $_POST['status'];
$solusi = $_POST['solusi'];
$presentase = $_POST['presentase'];
$harga = $_POST['harga'];
// query SQL untuk insert data
$query1 = "INSERT INTO tb_penerimaan VALUES('$no_servis','$tgl_terima','$kode_pelanggan','$nama_perangkat','$model_perangkat','$no_model','$keluhan','$kelengkapan','$dp','$status','$solusi','$harga','$presentase')";
$query2 = "INSERT INTO tb_pelanggan VALUES('$kode_pelanggan','$nama','$alamat','$nohp','$member')";
$query3 = "INSERT INTO login VALUES('$kode_pelanggan','$nama','$password','$hak_akses')";
$hasil = mysql_query($query1);
$hasil = mysql_query($query2);
$hasil = mysql_query($query3);
header("location: nota-masuk.php?no_servis='$no_servis'");
?>
最佳答案
您需要加入
SELECT tb_penerimaan.* , tb_pelanggan.nama
FROM tb_penerimaan
INNER JOIN tb_pelanggan ON tb_penerimaan.tb_penerimaan = tb_pelanggan.kode_pelanggan ;
如果不添加连接条件,您将获得行的笛卡尔积(对于一个表中的每一行,您选择另一个表中的所有行)..通过连接,您将建立仅选择匹配行的关系
关于php - 连接2个表时如何解决重复问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54420196/