Advertisement
cdsatrian

DATEDIFF 20170120001

Jan 19th, 2017
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 2.54 KB | None | 0 0
  1. -- tampilkan  
  2. #   SELECT
  3. -- nilai dari field `id`,`namacabang`,`alamatcabang`,`expsiup` dari table `cabang`,
  4. #   cabang.id,cabang.namacabang,cabang.alamatcabang,cabang.expsiup
  5. -- dan nilai field `namakota` dari table `kota`
  6. #   kota.namakota
  7. -- beserta nilai field `namapulau` dari table `pulau`
  8. #   pulau.namapulau
  9. -- dan juga nilai selisih jumlah tanggal dari nilai field `expsiup` dari table `cabang` dengan tanggal sekarang
  10. # DATEDIFF(cabang.expsiup,NOW())
  11. -- dan beri namabaru sebagai field `selisih`
  12. # AS selisih
  13. -- yang diambil datanya dari
  14. # FROM
  15. -- table `cabang`
  16. #   cabang
  17. -- direlasikan dengan tabel `kota`, dengan penghubung field `id_kota` dari tabel `cabang` dengan field `id_kota` dari tabel `kota`
  18. #   INNER JOIN kota ON cabang.id_kota=kota.id_kota
  19. -- dan direlasikan juga dengan tabel `pulau`, dengan penghubung field `id_pulau` di table `kota` dengan field `id` di tabel `pulau`
  20. #   INNER JOIN pulau ON kota.id_pulau=pulau.id
  21. -- dengan kondisi
  22. #   WHERE
  23. -- nilai selisih tanggal antara nilai field `expsiup` ditable cabang dengan waktu sekarang adalah antara 0 dan 90
  24. #   DATEDIFF(cabang.expsiup,NOW()) BETWEEN 0 AND 90
  25. -- secara lengkap ditulis
  26.  
  27. SELECT
  28.     cabang.id,cabang.namacabang,cabang.alamatcabang,cabang.expsiup,
  29.     kota.namakota,
  30.     pulau.namapulau,
  31.     DATEDIFF(cabang.expsiup,NOW()) AS selisih
  32. FROM
  33.     cabang
  34.     INNER JOIN kota ON cabang.id_kota=kota.id_kota
  35.     INNER JOIN pulau ON kota.id_pulau=pulau.id
  36. WHERE
  37.     DATEDIFF(cabang.expsiup,NOW()) BETWEEN 0 AND 90
  38.  
  39. ---  dengan melakukan alias pada nama tabel, naka dapat disingkat menjadi:
  40.  
  41. SELECT
  42.     a.id,a.namacabanga.alamatcabang,a.expsiup,
  43.     b.namakota,
  44.     c.namapulau,
  45.     DATEDIFF(a.expsiup,NOW()) AS selisih
  46. FROM
  47.     cabang a
  48.     INNER JOIN kota  b ON a.id_kota=b.id_kota
  49.     INNER JOIN pulau c ON b.id_pulau=c.id
  50. WHERE
  51.     DATEDIFF(a.expsiup,NOW()) BETWEEN 0 AND 90
  52.  
  53. -- secara default, JOIN table adalah INNER JOIN, maka untuk INNER JOIN bisa cukup dituliskan sbg JOIN saja
  54.  
  55. SELECT
  56.     a.id,a.namacabanga.alamatcabang,a.expsiup,
  57.     b.namakota,
  58.     c.namapulau,
  59.     DATEDIFF(a.expsiup,NOW()) AS selisih
  60. FROM
  61.     cabang a
  62.     JOIN kota  b ON a.id_kota=b.id_kota
  63.     JOIN pulau c ON b.id_pulau=c.id
  64. WHERE
  65.     DATEDIFF(a.expsiup,NOW()) BETWEEN 0 AND 90
  66.  
  67. -- dalam klausa ON, jika nama field di kedua ruas adalah sama maka bisa diganti dengan klausa USING, sebagai berikut
  68.  
  69. SELECT
  70.     a.id,a.namacabanga.alamatcabang,a.expsiup,
  71.     b.namakota,
  72.     c.namapulau,
  73.     DATEDIFF(a.expsiup,NOW()) AS selisih
  74. FROM
  75.     cabang a
  76.     JOIN kota  b USING(id_kota)
  77.     JOIN pulau c ON b.id_pulau=c.id
  78. WHERE
  79.     DATEDIFF(a.expsiup,NOW()) BETWEEN 0 AND 90
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement