Read 141 times | Created 2013-09-08 03:58:32 | Updated 2013-09-09 02:35:53 | | |

 

DROP TABLE IF EXISTS `tb_kota`;  
CREATE TABLE IF NOT EXISTS `tb_kota` (  
  `kd_kota` int(11) unsigned NOT NULL AUTO_INCREMENT,  
  `kota` VARCHAR(30)NOT NULL,  
  `provinsi` VARCHAR(30) NOT NULL, 
  PRIMARY KEY (`kd_kota`)  
) ENGINE=MyISAM; 

INSERT INTO tb_kota(`kota`,`provinsi`) 
VALUES('malang','jawa timur'),('blitar','jawa timur'),('kediri','jawa timur'),('pacitan','jawa timur'); 

DROP TABLE IF EXISTS `tb_rute`;  
CREATE TABLE IF NOT EXISTS `tb_rute` (  
  `rute` char(1) NOT NULL,  
  `dari` int(11)NOT NULL,  
  `tujuan` int(11) NOT NULL 
) ENGINE=MyISAM; 

INSERT INTO tb_rute 
VALUES('a',1,2),('b',2,1),('c',1,3); 

-- relasi rute dengan kota asal dan kota tujuan
SELECT a.rute,b.kota AS dari, c.kota AS tujuan 
FROM 
tb_rute a 
JOIN tb_kota b ON a.dari=b.kd_kota 
JOIN tb_kota c ON a.tujuan=c.kd_kota;

-- kota yang tidak punya rute
SELECT b.kota
FROM  tb_rute a
RIGHT JOIN tb_kota b ON (a.dari = b.kd_kota OR a.tujuan = b.kd_kota)
WHERE a.rute IS NULL;