Arsip: Script Sql Simpel tapi susah

more 12 years ago
Penjahat
Halo... begini teman-teman, aku punya problem dengan sql yang sebelumnya nggak pernah aku alamin.
aku pake Delphi 7 dengan MySql, koneksi menggunakan MyDac
aku punya tabel kayak gini :
guid A B
----------------------
1 surabaya 2
2 semarang 2
3 malang 2
4 balikpapan 3
5 samarinda 3
6 sulawesi 4
7 makasar 4
output yang diinginkan adalah
guid A B
----------------------
3 malang 2
5 samarinda 3
7 makasar 4
yaitu guid terakhir dalam tiap group B
jika kita gunakan simpel "group by B" maka outputnya adalah
guid A B
1 surabaya 2
4 balikpapam 3
6 sulawesi 4
tidak sesuai yang diinginkan
mohon teman-teman, atas bantuannya sangat aku hormati
more 12 years ago
cyber_hecker
[sql]SELECT DARI TEST
WHERE GUID IN (SELECT MAX(GUID) ID
DARI TEST
GROUP BY B)[/sql]
ganti kata DARI menjadi
karena aneh nih delphi-id sekarang. setiap nulis kata * hasilnya jadi :
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@delphi-id.org and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_bwlimited/1.4 PHP/5.2.9 Server at delphi-id.org Port 80

more 12 years ago
Penjahat
maksud mas cyber_hecker gini ya
[sql]SELECT * F R O M tbname
WHERE guid IN(SELECT MAX(guid) F R O M tbname GROUP BY B)[/sql]
yupz sepertinya sangat membantu, terimakasih banget.
tapi saya ada masalah baru, kalo kita pake cara di atas dengan ratusan ribu record kayaknya prosesnya akan cukup lambat, tapi saya belum buktiin.
karena mungkin menurut saya kalo nggak salah, dengan metode DEPENDENT SUBQUERY, di dalam IN() ada fungsi SELECT F R O M tbname, maka server akan melakukan full scanning terhadap 2 table, dalam hal ini 2 t a b l e yang sama, yaitu "tbname".
Dengan kata lain t a b e l tbname akan di-scan 2 kali. mohon maaf dan koreksinya kalo saya salah...
kalo itu benar, kira-kira menurut mas cyber_hecker ada cara lain nggak, (sekedar pingin tau aja)
mungkin dengan manipulasi index atau susunan record.
Seperti kita tau SELECT dengan GROUP BY akan menghasilkan record pertama dalam setiap group. nah... mungkin kita bisa membalik susunan recordnya atau mungkin mas punya ide....
thanks banget ya mas, reply mas udah sangat membantu, ini hanya sekedar pingin tau aja.
oh ya.... ternyata delphi-id sentimen ama kata kata
1. F R O M (tanpa spasi)
2. T A B L E (tanpa spasi)
3. ....

more 12 years ago
_lmz
Kenapa menebak cara server jalankan sel ectnya kalau bisa dibuktikan?
http://dev.mysql.com/doc/refman/5.0/en/explain.html
Seperti kita tau SEL ECT dengan GR OUP B Y akan menghasilkan record pertama dalam setiap groupItu spesifik MySQL. Secara umum, semua kolom hasil SEL ECT dengan GRO UP BY harus merupakan aggregate atau termasuk dalam daftar GR OUP BY. Hasil yang dihasilkan MySQL pun belum tentu yang pertama:
Do not use this feature if the columns you omit from the GRO UP BY part are not constant in the group. The server is free to return any value from the group, so the results are indeterminate unless all values are the same.Tentang ind ex siapa tahu in dex pada kolom (B ASC, guid DE SC) dapat menolong. Tapi tentu saja harus dibuktikan sendiri dengan jumlah data yang realistis. BTW: "proteksi" sql injection ini sangat menjengkelkan untuk tempat yang memang mendiskusikan SQL.

more 12 years ago
Penjahat
OK... thankyou _lmz
its very meaningful to me.....i appreciate that.
thankyou...
more ...
- Pages:
- 1
reply |
Report Obsolete
Last Articles
- Lazarus Release 2.0.12
- Project Group dalam Lazarus
- FastPlaz Database Explorer
- Release: FastPlaz Super Mom v0.12.22
- PascalClass #3: Web Development with Free Pascal
- Makna Pascal di Pascal Indonesia
- Kulgram : Instalasi Lazarus di Perangkat Berbasis ARM
- PascalClass #1: Analisa Database dan Machine Learning
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
- Mengenal OXYGENE – Pascal For .NET
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 6 months ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 6 months ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 7 months ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 7 months ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 7 months ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 7 months ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 1 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 8 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 8 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 8 years ago
Random Topic
- error "missing connection or connection string"
by flamade in Hal umum tentang Pascal Indonesia more 13 years ago - cross tab tanggal
by delphi1st in Tip n Trik Pemrograman more 14 years ago - Backup restore MSSQL di Delphi
by fafenail in Hal umum tentang Pascal Indonesia more 15 years ago - Program jaringan online antar kota
by Exoo in Network, Files, I/O & System more 14 years ago - Info Firebird
by kaka-delphi in FireBird more 15 years ago - Bahasa C++
by fafa in Network, Files, I/O & System more 13 years ago - Paradox & Rich Edit
by clark in Paradox more 15 years ago - tanya MSCOMM32
by imunk in Enginering more 16 years ago - MySQL Connection Through Windows 7
by ax3l in MySQL more 10 years ago - HARGA USER ATAU PROGRAMMER???
by n3o_cybertech in Tip n Trik Pemrograman more 13 years ago