Tolong pilih kategori sesuai, jenis posting (diskusi atau bukan) dan sertakan tag/topik yang sesuai seperti komputer, java, php, mysql, dll. Promosi atau posting tidak pada tempatnya akan kami hapus!
- Bagi Anda yang ingin mendaftar, baca link berikut:
http://diskusiweb.com/discussion/50491/how-to-registrasi-diskusiweb-com-baca-ini-terlebih-dahulu
- Cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com
- Cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

tanya query dengan distinct dan order by

prens,
tanya dong.. gimana caranya menggabungkan distinct dan order by
kasus nya kira2 spt ini:

file_id | file_name | file_date | data_id
---------+-------------------------+-----------------+ -----------
1 | kalkulus | 2009-02-14 | 1
2 | kimia terapan | 2009-02-15 | 2
3 | fisika atom | 2009-02-16 | 3
4 | fisika quantum | 2009-02-17 | 3
5 | kimia dasar | 2009-02-18 | 2
6 | geometri | 2009-02-19 | 1
7 | kimia lanjutan | 2009-02-20 | 2

nah hasil yg diinginkan adalan:
pengelompokan berdasar data id tapi HANYA data dengan tanggal yg
terakhirnya (dari masing2 data id) yg tampil , seperti ini:

7 | kimia lanjutan | 2009-02-20 | 2
6 | geometri | 2009-02-19 | 1
4 | fisika quantum | 2009-02-17 | 3

saya udah coba macem2 cara, seperti
SELECT * FROM (SELECT DISTINCT .....) AS t ORDER BY ........ desc
atau dengan "group by"
tapi mentok nih..

ada pencerahan?

Comments

  • gak mau bos goku..
    tadi jg udah nyoba gitu,

    tapi keluarnya bukan data yg tanggal terakhir..
    kalau query begitu, hasilnya dikelompokin dulu berdasar data id, lalu di sort berdasar tanggal, jadi bukan data tanggal terakhir.
    yg keluar seperti ini:

    3 | fisika atom | 2009-02-16 | 3
    2 | kimia terapan | 2009-02-15 | 2
    1 | kalkulus | 2009-02-14 | 1
  • pake
    ...
    ...
    where file_date = max(file_date)
    group by data_id

    ?
  • Waduh lama nggk nunggul, kemana wae kang

    Coba
    ... group by data_id order by file_date desc

    Mau nggk?
  • Originally posted by Panoramix
    pake
    ...
    ...
    where file_date = max(file_date)
    group by data_id

    ?

    gak bisa jg bos, malah error
    #1111 - Invalid use of group function
  • select a.*
    from
    (
    select *
    from test
    order by data_id,file_date desc
    ) a
    group by a.data_id

    bisa, tapi kalo bisa hindari sub query
  • Coba lg

    ... grouo by data_id having max(file_date)

    Kalau nggk mau terpaksa pakai subquery. Emang nggk efisien sih

    select distinct data_id,
    (select filename from tabel b where b.data_id=a.data_id order by file_date desc limit 1)
    from tabel a

    Untuk ambil id sama dgn subquery diatas. Emang kayaknya gimana gitu . :D
  • tengkiu om goku, panoramix, daredevil.. :D
    kayaknya udah bisa nih,
    sementara mau gak mau pake sub query deh

    select a.*
    from
    (
    select *
    from test
    order by data_id,file_date desc
    ) a
    group by a.data_id order by a.file_date desc
  • *salah baca komen* :D

    blom kepikir yg gak pake subquery... :D
  • pake sub query ja, dr pd bingung mikirin 1 problem yg g bs dkerjain...
Sign In or Register to comment.