The important part of an INNER join is that if no matches are found, no results are created. Jadi, jangan pakai INNER yah :) Pakainya LEFT join.
============== SELECT siswa.nama AS nsis, kategori.nama AS nkat, skill.nama AS nskill, siswa_skill.nilai AS nilai FROM siswa LEFT JOIN siswa_skill ON siswa.id = siswa_skill.siswa LEFT JOIN skill ON siswa_skill.skill = skill.id LEFT JOIN kategori ON kategori.id = skill.kategori ============== Selamat menikmati ;) Result: (sudah ditambah siswa id 3, nama dono) nsis nkat nskill nilai Andi IPA Matematika 3 Andi IPA Fisika 4 Doni IPA Matematika 1 Doni Bahasa Bahasa Inggris 5 Dono NULL NULL NULL On 7/28/05, edhy ndjr <[EMAIL PROTECTED]> wrote: > coba apakah bisa kalo querynya seperti ini... > > ====================================================== > > SELECT siswa.nama as nsis, kategori.nama as nkat, > skill.nama as nskill, siswa_skill.nilai as nilai > FROM kategori INNER JOIN skill ON kategori.id = > skill.kategori INNER JOIN siswa_skill ON > siswa_skill.skill = skill.id INNER JOIN siswa ON > siswa.id = siswa_skill.siswa WHERE siswa.id = 1 > > ====================================================== > Semoga berhasil... > --- LuckyGuy354 <[EMAIL PROTECTED]> wrote: > > > Nanya lagi ahh =) > > > > Ini pakai MySQL 4.0.23-nt. > > > > Misalnya ada 3 tabel. > > Tabel SISWA berisi data siswa > > Tabel SKILL berisi kemampuan siswa > > Tabel KATEGORI berisi kategori dari skill-skill itu > > Tabel SISWA_SKILL berisi skill-nya siswa (karena > > tiap siswa punya skill > > lebih dari 1, makanya dibuat di tabel trpisah) > > > > Fieldnya begini : > > SISWA(id,nama) PRIMARY id > > SISWA_SKILL(siswa,skill,nilai) PRIMARY > > id_siswa,id_skill. Nilai berisi > > 1-5. > > SKILL(id,kategori,nama) PRIMARY id > > KATEGORI(id,nama) PRIMARY id > > > > Kalau saya hanya ingin menampilkan data yang ada > > untuk salah satu siswa > > dengan data yang dibutuhkan adalah > > > > nama siswa, kategori, skill, dan nilainya > > > > bisa dengan begini: > > > > SELECT siswa.nama nama, kategori.nama kategori, > > skill.nama skill, > > siswa_skill.nilai nilai FROM kategori, siswa, > > siswa_skill, skill WHERE > > siswa.id = siswa_skill.siswa AND siswa_skill.skill = > > skill.id AND > > skill.kategori = kategori.id AND siswa.id=1 > > > > atau begini: > > > > SELECT siswa.nama nama, kategori.nama kategori, > > skill.nama skill, > > siswa_skill.nilai nilai FROM kategori JOIN siswa > > JOIN siswa_skill JOIN skill > > ON siswa.id = siswa_skill.siswa AND > > siswa_skill.skill = skill.id AND > > skill.kategori = kategori.id AND siswa.id=1 > > > > Masalahnya, kalau dengan cara seperti itu, data-data > > yang NULL tidak iklut > > tampil. Maunya saya, semua skill, kategori, beserta > > nilainya tampil, > > walaupun nilainya NULL. Gimana caranya ya? Pakai > > RIGHT JOIN & LEFT JOIN > > nggak bisa lebih dari dua tabel Walaupun di masukkan > > dalam tanda kurung, > > tetep aja nggak bisa, cuma JOIN yang bisa dimasukkan > > dalam tanda kurung. > > > > Sebelumnya, terima kasih banyak atas jawabannya. > > > > > > > > ___________________________________________________________ > Yahoo! Messenger - NEW crystal clear PC to PC calling worldwide with > voicemail http://uk.messenger.yahoo.com > > > --- > Website: http://toekangweb.or.id/ > Arsip milis : http://groups.yahoo.com/group/toekangweb/messages > > Yahoo! Groups Links > > > > > > > --- Website: http://toekangweb.or.id/ Arsip milis : http://groups.yahoo.com/group/toekangweb/messages Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/toekangweb/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
