Generic placeholder image

Mencari id looping

Ditanyakan 3 bulan yang lalu oleh Ikram Shabri

Mau bertanya, misalkan kita mau membuat aplikasi cuti karyawan, dimana ketika karyawan mengajukan cuti, atasannya akan langsung dapat notifikasi di email,

Saya punya rancangan database seperti ini

id |          nama           |              email                |        atasan              
1            Michael                       michael.com                    2
2            Johan                           johan.com                       4
3            Lorem                        lorem.com                        2
4            Ipsum                        ipsum.com                        5
5            Dolor                           dolor.com

yang ingin ditanyakan, bagaimana ketika user id 1 mengirim email, maka yang mendapat emailnya user 2 dan 4, karena user id 2 merupakan atasan dari user id 1, dan user id 4 merupakan atasan dari user id 2

terima kasih

BUAT KOMENTAR

1 JAWABAN / 1 KOMENTAR

Generic placeholder image
Ahmad Oriza menjawab pada tanggal 26 March 2019

Hai mas,

Untuk melakukan ini bisa memanfaatkan fitur Rekursif Query dari MySQL. Untuk mengambil atasan ke atasan lagi bisa gunakan query seperti ini :

SELECT atasan
FROM 
(SELECT * FROM karyawan) as a,
(SELECT @pv := 1) initialisation
WHERE find_in_set(id, @pv) > 0 AND @pv := CONCAT(@pv, ',', atasan)

Isikan SELECT @pv := 1 dengan id karyawan yang diinginkan. Dicontoh mengambil id user 1.

Maka hasilnya seperti ini pada tabel contoh saya :

BUAT KOMENTAR