Advertisement
virbo

Query on Field JSON Type

Dec 27th, 2015
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- CREATE TABLE prodi
  2. CREATE TABLE prodi
  3. (
  4.   id serial NOT NULL,
  5.   nm_prodi character varying(50),
  6.   CONSTRAINT pk_prodi PRIMARY KEY (id)
  7. );
  8.  
  9. -- CREATE TABLE mhs
  10. CREATE TABLE mhs
  11. (
  12.   id serial NOT NULL,
  13.   data json,
  14.   CONSTRAINT pk_mhs PRIMARY KEY (id)
  15. );
  16.  
  17. -- INSERT INTO TABEL prodi
  18. INSERT INTO prodi(id, nm_prodi) VALUES(22,'Ilmu Pemerintahan');
  19. INSERT INTO prodi(id, nm_prodi) VALUES(23,'Agroteknologi');
  20. INSERT INTO prodi(id, nm_prodi) VALUES(24,'Ilmu Hukum');
  21. INSERT INTO prodi(id, nm_prodi) VALUES(25,'Agribisnis');
  22. INSERT INTO prodi(id, nm_prodi) VALUES(26,'Arsitektur');
  23. INSERT INTO prodi(id, nm_prodi) VALUES(27,'Teknik Sipil');
  24. INSERT INTO prodi(id, nm_prodi) VALUES(28,'Ilmu Administrasi Negara');
  25. INSERT INTO prodi(id, nm_prodi) VALUES(29,'Pendidikan Matematika');
  26. INSERT INTO prodi(id, nm_prodi) VALUES(30,'Manajemen');
  27. INSERT INTO prodi(id, nm_prodi) VALUES(31,'Ekonomi Pembangunan');
  28. INSERT INTO prodi(id, nm_prodi) VALUES(32,'Bimbingan Dan Konseling');
  29. INSERT INTO prodi(id, nm_prodi) VALUES(33,'Kesehatan Masyarakat');
  30. INSERT INTO prodi(id, nm_prodi) VALUES(34,'Pendidikan Pancasila Dan Kewarganegaraan');
  31.  
  32. -- INSERT INTO TABLE mhs
  33. INSERT INTO mhs(id, data) VALUES(1,'{"nim":"001","nama":"Ridwan","id_prodi":"22"}');
  34. INSERT INTO mhs(id, data) VALUES(2,'{"nim":"002","nama":"Roni","id_prodi":"25"}');
  35. INSERT INTO mhs(id, data) VALUES(3,'{"nim":"003","nama":"Rustam","id_prodi":"24"}');
  36. INSERT INTO mhs(id, data) VALUES(4,'{"nim":"004","nama":"Wirda","id_prodi":"22"}');
  37. INSERT INTO mhs(id, data) VALUES(5,'{"nim":"005","nama":"Angel","id_prodi":"26"}');
  38.  
  39. ===============================
  40. -- SIMPLE QUERY
  41. SELECT * FROM mhs
  42.  
  43. Result:
  44. id | data
  45. 1  | {"nim":"001","nama":"Ridwan","id_prodi":"22"}
  46. 2  | {"nim":"002","nama":"Roni","id_prodi":"25"}
  47. 3  | {"nim":"003","nama":"Rustam","id_prodi":"24"}
  48. 4  | {"nim":"004","nama":"Wirda","id_prodi":"22"}
  49. 5  | {"nim":"005","nama":"Angel","id_prodi":"26"}
  50.  
  51.  
  52. -- QUERY WITH JOIN TABLE prodi
  53. SELECT m.data->>'nim' AS nim,m.data->>'nama' AS nama,
  54.     pr.nm_prodi AS prodi
  55. FROM mhs m
  56. JOIN prodi pr ON m.data->>'id_prodi'=pr.id::text
  57.  
  58. Result:
  59. nim | nama     | prodi
  60. 001 | Ridwan   | Ilmu Pemerintahan
  61. 004 | Wirda    | Ilmu Pemerintahan
  62. 003 | Rustam   | Ilmu Hukum
  63. 002 | Roni     | Agribisnis
  64. 005 | Angel    | Arsitektur
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement