如何在mysql中隐藏重复记录?

时间:2014-05-24 18:50:29

标签: mysql

请帮帮我,如何隐藏mysql中的重复记录? 我有2张桌子: tbl_transaksi和tbl_item

tbl_transaksi

tanggal      kode_item
2014-05-24   A1
2014-05-24   A2
2014-05-24   A1
2014-02-10   A4

tbl_item

kode_item nama_barang
A1        PULPEN
A2        BAJU
A3        LAPTOP
A4        DASI
A5        SEPATU

我尝试加入

select a.tanggal,b.nama_barang from tbl_transaksi a inner join tbl_item b on a.kode_item=b.kode_item order by a.tanggal asc;

结果

tanggal      nama_barang
2014-02-10   DASI 
2014-05-24   PULPEN
2014-05-24   BAJU
2014-05-24   PULPEN

但是,我想要这样的结果

tanggal      nama_barang
2014-02-10   DASI
2014-05-24   PULPEN  
BAJU
PULPEN

如何表现出来?

2 个答案:

答案 0 :(得分:1)

您要求的四行

CREATE TABLE temp
    (`id` MEDIUMINT NOT NULL AUTO_INCREMENT key,`tanggal` varchar(10), `nama_barang` varchar(6))
;

insert into temp (tanggal, nama_barang)
select a.tanggal,b.nama_barang 
from tbl_transaksi a 
inner join tbl_item b on a.kode_item=b.kode_item 
order by a.tanggal asc;



select case when t1.tanggal=t2.tanggal then '' else t1.tanggal end tanggal, t1.nama_barang


from temp t1 left join temp t2
on t1.id-1=t2.id

drop table temp;

TEST

答案 1 :(得分:0)

试试:

   select a.tanggal,Group_concat(b.nama_barang ) nama_barang
   from tbl_transaksi a 
   inner join tbl_item b 
   on a.kode_item=b.kode_item 
   GROUP BY a.tanggal
   order by a.tanggal asc;

DEMO