Arsip: mencari data update pada tabel relasi?

 
user image
more 16 years ago

dels

hi semua, saya ada masalah ketika mengambil data update yg terdapat pada tabel relasi. masalahnya kira2 begini : 1. ada 2 tabel, tabel kendaraan (tkendaraan) dan tabel posisi (tposisi) 2. pada tabel kendaraan field2-nya antara lain (sisanya hanya pelengkap informasi): - id_kendaraan (primary) - id_pemilik (foreign ke tpemilik, tpemilik tdk terlalu penting saat ini) 3. pada tabel posisi field2-nya antara lain(sisanya hanya pelengkap informasi): - id_posisi (primary) - id_kendaraan (foreign) - waktu - posisi yang diinginkan adalah mengambil data posisi terakhir dari tiap kendaraan yang dimiliki oleh seorang pengguna (mengacu ke id_pemilik), misal isi data : tkendaraan ------------------------------ id_kendaraan | id_pemilik ------------------------------ D1234A | dels D1234B | dels D1234C | dels ------------------------------- tposisi ------------------------------------------------------------------- id_posisi | id_kendaraan | waktu | posisi ------------------------------------------------------------------- 1 | D1234A | 27/08/2008 12:00:00 | bandung 2 | D1234A | 27/08/2008 11:00:00 | bandung 3 | D1234B | 27/08/2008 13:00:00 | jakarta 4 | D1234C | 27/08/2008 12:00:00 | semarang 5 | D1234A | 27/08/2008 10:00:00 | bandung 6 | D1234C | 27/08/2008 11:00:00 | semarang 7 | D1111A | 27/08/2008 12:00:00 | semarang 8 | D2222B | 27/08/2008 10:00:00 | semarang -------------------------------------------------------------------- cat : D1111A & D2222B bukan milik dels hasil query yg diinginkan ----------------------------------------------------------------------- id_pemilik | id_kendaraan | waktu | posisi ----------------------------------------------------------------------- dels | D1234A | 27/08/2008 12:00:00 | bandung dels | D1234B | 27/08/2008 13:00:00 | jakarta dels | D1234C | 27/08/2008 12:00:00 | semarang ------------------------------------------------------------------------ cara biasa yg saya lakukan adalah: 1. mencari data2 kendaraan seorang pemilik, contoh disini pemilik = dels SELECT FROM tpemilik WHERE id_pemilik = 'dels' 2. tampung semua data kendaraan yg cocok di stringlist ato listbox 3. cari data posisi teratas dari tiap2 kendaraan, contoh: for i:=0 to (Listbox1.Items.Count-1) do SELECT TOP 1 FROM tposisi WHERE id_kendaraan = '+ Listbox1.Items[i].Value +' yah kurang lebih bgtu 4. data yg sudah diambil ditampung ke stringlist/listbox lain cara di atas memang sudah berhasil menampilkan hasil yg sesuai, tapi karena data posisi yg ada sangat banyak begitu pula data kendaraannya proses ini akan berlangsung amat lama, maka diperlukan cara lain yang lebih efisien sehingga diharapkan dapat mempercepat proses pengambilan data solusi yg diharapkan: - menggunakan murni SQL untuk mengambil hasil yg diharapkan, atau - menggunakan view/storage procedure pokoknya sebisa mungkin menghindari pemakain loop di kode Delphi thanks :D
user image
more 16 years ago

nizar

Kalo gini bisa gak ya? SELECT TOP 1 * FROM tposisi WHERE id_kendaraan in select id_kendaraan FROM tpemilik WHERE id_pemilik = 'dels'
user image
more 16 years ago

madi

menggunakan fungsi join tuk query beberapa table.. contoh liat sendiri di http://www.w3schools.com
user image
more 16 years ago

dels

@nizar: Kalo gini bisa gak ya? SELECT TOP 1 * FROM tposisi WHERE id_kendaraan in select id_kendaraan FROM tpemilik WHERE id_pemilik = 'dels'
makasi mas, tar saya coba, klo ada hasil saya kasi tau
@madi: menggunakan fungsi join tuk query beberapa table.. contoh liat sendiri di http://www.w3schools.com
ada kode aktual-nya ga mas? saya sendiri sedikit tahu mengenai JOIN cuma yg saya bingung itu data yg diambil itu perkendaraan (klo semisal cuma 1 kendaraan sudah bisa)
user image
more 16 years ago

madi

code aqtualnya disini yg mendekati tentunya....:D http://www.w3schools.com/sql/sql_join.asp
user image
more 16 years ago

dels

@madi: code aqtualnya disini yg mendekati tentunya....:D http://www.w3schools.com/sql/sql_join.asp
:D maksud saya kode aktual seperti yg dikasi oleh mas nizar (yg sayangnya masi tidak sukses) thanks buat link ke W3Schools-nya tar saya coba2 jg sendiri :D ada lg yg bisa mecahin masalahnya?
user image
more 16 years ago

madi

SELECT KENDARAAN.ID_PEMILIK, POSISI.ID_KENDARAAN, POSISI.WAKTU, POSISI.POSISI WHERE KENDARAAN.ID_KENDARAAN = POSISI.ID_KENDARAAN AND KENDARAAN.ID_PEMILIK = 'dels'
user image
more 16 years ago

nizar

ya sudah saya cobakan, ini sudah bisa kalau menggunakan access SELECT tpemilik.id_pemilik, tposisi.id_kendaraan, First(tposisi.waktu) AS waktu, First(tposisi.lokasi) AS lokasi FROM tpemilik INNER JOIN tposisi ON tpemilik.id_kendaraan = tposisi.id_kendaraan GROUP BY tpemilik.id_pemilik, tposisi.id_kendaraan
more ...
  • Pages:
  • 1
Share to

AI Forward

🚀 We're thrilled to partner with Alibaba Cloud for "AI Forward - Alibaba Cloud Global Developer Summit 2025" in Jakarta! Join us and explore the future of AI. Register now: https://int.alibabacloud.com/m/1000400772/
#AlibabaCloud #DeveloperSummit #Jakarta #AIFORWARD

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com