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.

Dump MySQL-nya begini:

# phpMyAdmin MySQL-Dump
# version 2.5.0-rc2
# http://www.phpmyadmin.net/ (download page)
#
# Host: localhost
# Waktu pembuatan: 27. Juli 2005 jam 18:11
# Versi Server: 4.0.23
# Versi PHP: 4.3.1
# Database : `murid`
# --------------------------------------------------------

#
# Struktur dari tabel `kategori`
#
# Pembuatan: 27. Juli 2005 jam 17:58
# Update terakhir: 27. Juli 2005 jam 18:08
#

DROP TABLE IF EXISTS `kategori`;
CREATE TABLE `kategori` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `nama` varchar(20) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=4 ;

#
# Dumping data untuk tabel `kategori`
#

INSERT INTO `kategori` (`id`, `nama`) VALUES (1, 'IPA');
INSERT INTO `kategori` (`id`, `nama`) VALUES (2, 'IPS');
INSERT INTO `kategori` (`id`, `nama`) VALUES (3, 'Bahasa');
# --------------------------------------------------------

#
# Struktur dari tabel `siswa`
#
# Pembuatan: 27. Juli 2005 jam 17:49
# Update terakhir: 27. Juli 2005 jam 18:08
#

DROP TABLE IF EXISTS `siswa`;
CREATE TABLE `siswa` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `nama` varchar(20) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;

#
# Dumping data untuk tabel `siswa`
#

INSERT INTO `siswa` (`id`, `nama`) VALUES (1, 'Andi');
INSERT INTO `siswa` (`id`, `nama`) VALUES (2, 'Doni');
# --------------------------------------------------------

#
# Struktur dari tabel `siswa_skill`
#
# Pembuatan: 27. Juli 2005 jam 17:50
# Update terakhir: 27. Juli 2005 jam 18:08
#

DROP TABLE IF EXISTS `siswa_skill`;
CREATE TABLE `siswa_skill` (
  `siswa` int(10) unsigned NOT NULL default '0',
  `skill` int(10) unsigned NOT NULL default '0',
  `nilai` int(10) unsigned NOT NULL default '0',
  PRIMARY KEY  (`siswa`,`skill`)
) TYPE=MyISAM;

#
# Dumping data untuk tabel `siswa_skill`
#

INSERT INTO `siswa_skill` (`siswa`, `skill`, `nilai`) VALUES (1, 1, 3);
INSERT INTO `siswa_skill` (`siswa`, `skill`, `nilai`) VALUES (1, 2, 4);
INSERT INTO `siswa_skill` (`siswa`, `skill`, `nilai`) VALUES (2, 1, 1);
INSERT INTO `siswa_skill` (`siswa`, `skill`, `nilai`) VALUES (2, 6, 5);
# --------------------------------------------------------

#
# Struktur dari tabel `skill`
#
# Pembuatan: 27. Juli 2005 jam 17:56
# Update terakhir: 27. Juli 2005 jam 18:08
#

DROP TABLE IF EXISTS `skill`;
CREATE TABLE `skill` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `kategori` int(10) unsigned NOT NULL default '0',
  `nama` varchar(20) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=7 ;

#
# Dumping data untuk tabel `skill`
#

INSERT INTO `skill` (`id`, `kategori`, `nama`) VALUES (1, 1, 'Matematika');
INSERT INTO `skill` (`id`, `kategori`, `nama`) VALUES (2, 1, 'Fisika');
INSERT INTO `skill` (`id`, `kategori`, `nama`) VALUES (3, 2, 'Sejarah');
INSERT INTO `skill` (`id`, `kategori`, `nama`) VALUES (4, 2, 'Ekonomi');
INSERT INTO `skill` (`id`, `kategori`, `nama`) VALUES (5, 3, 'Bahasa
Indonesia');
INSERT INTO `skill` (`id`, `kategori`, `nama`) VALUES (6, 3, 'Bahasa
Inggris');


LuckyGuy354
IT Beginner





----------------------------------------------------------
Komunitas MasterWeb Indonesia http://www.master.web.id
----------------------------------------------------------
MWN, Masternya WEBHOSTING di Indonesia, Indo/USA Servers,
Customer Support 24 jam  http://www.masterwebnet.com
----------------------------------------------------------
WebDevelopment,Designing/Programming http://www.dlanet.com
---------------------------------------------------------- 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/milis-masterweb/

<*> 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/
 


Kirim email ke