Cara menggunakan left join untuk select count lewat referensi table

Saya masih bingung menggunakan left join atau mungkin ada fungsi lain untuk masalah saya, ibaratkan saya punya 3 tabel, tabel pertama ini saya gunakan untuk menampung nama, tabel kedua saya gunakan untuk menampung hobby dari nama orang tersebut, dan tabel ketiga saya gunakan untuk menyimpan referensi tabel tersebut. Ijinkan saya untuk membuat visualiasinya:


Tabel person :               Tabel hobby :            Tabel referensi :
-----------------      ------------------    -------------------------------------
|  id  |  name  |      |  id  |  hobby  |    |  id  |  ref_person  |  ref_hobby  |
-----------------      ------------------    -------------------------------------
|   1  |  Rose  |      |   1  |  Makan  |    |   1  |    1         |    1        |
|   2  |  Lisa  |      |   2  |  Renang |    |   2  |    1         |    3        |
|   3  |  Jisoo |      |   3  |  Nyanyi |    |   3  |    1         |    4        |
|   4  |  Jennie|      |   4  |  Youtube|    |   4  |    3         |    5        |
-----------------      |   5  |  Masak  |    -------------------------------------
                       ------------------

saya ingin menghitung jumlah hobby dari orang-orang tersebut.

Misalnya saya ingin menyeleksi Rose :          Misalnya saya ingin menyeleksi Jisoo :

---------------------------                    ---------------------------
|  id  |  hobby  |  count |                    |  id  |  hobby  |  count |
---------------------------                    ---------------------------
|  1   |  Makan  |  1     |                    |  1   |  Makan  |  0     |
|  2   |  Renang |  0     |                    |  2   |  Renang |  0     |
|  3   |  Nyanyi |  1     |                    |  3   |  Nyanyi |  0     |
|  4   |  Youtube|  1     |                    |  4   |  Youtube|  0     |
|  5   |  Masak  |  0     |                    |  5   |  Masak  |  1     |
---------------------------                    ---------------------------

Dan seterusnya, caranya gimana ya?

Ini query yang coba saya buat, tapi hanya bisa menampilkan data data yang countnya lebih dari 0, kalau 0 tidak tampil:

SELECT
	hobby.id,
	hobby.name,
	count( referensi.id ) AS count
FROM
	referensi
	LEFT OUTER JOIN hobby ON hobby.id = referensi.ref_hobby
	JOIN person ON referensi.ref_person = person.id
	WHERE person.id = 1
GROUP BY
	hobby.id

Terimakasih.

avatar DennyKurniawan
@DennyKurniawan

62 Kontribusi 22 Poin

Dipost 5 tahun yang lalu

1 Jawaban:

Jawaban Terpilih

Jawabannya sudah ketemu, saya sudah bertanya di forum stackoverflow. Bagi yang memiliki masalah yang sama silahkan cek pertanyaan saya di <a href=' https://stackoverflow.com/questions/54602341/how-to-join-from-3-table-with-condition '>Link ini</a>

dan jangan lupa beri upvote untuk setiap jawaban mereka ya. Karena jawaban mereka benar semua. :)

avatar DennyKurniawan
@DennyKurniawan

62 Kontribusi 22 Poin

Dipost 5 tahun yang lalu

Login untuk ikut Jawaban