Postingan lainnya
Inner join pada mysql
saya punya 2 tabel user : id | nama 1 | john 2 | doe
dan hobi : id | nama | user_id 1 |gaming| 1 2 |koding| 1 3 |bola | 2 4 |koding| 2
SELECT user.name as nama,
hobi.name as hobi
from user
INNER JOIN hobi ON hobi.user_id=user.id
dengan query tsb mendapat hasil
nama | hobi john | gaming john | koding doe | bola doe | koding
tetapi saya ingin hasil
nama | jlh_hobi john | 2 doe | 2
saya baru belajar lebih dalam tentang query2 di sql. bagaimana ya query untuk mendapatkan hasil yang saya inginkan? terimakasih
3 Jawaban:
Coba gunain query seperti ini:
<pre> SELECT a.nama,(SELECT count(b.id) FROM hobi b WHERE a.id=b.user_id) as jumlah_hoby FROM user a </pre>
tapi kalau query seperti ini kendalanya nanti dia akan tetap menghitung satu hoby walaupun nama hobinya nanti sama untuk org yg sama... hihihi
Tanggapan
Makasih bg, saya coba dulu
Gini gan <pre> SELECT user.name as Nama, count(hobi.name) as Hobi FROM user INNER JOIN hobi ON hobi.user_id=user.id GROUP BY user_id </pre>
Jadinya kaya gini kan
<img src=' https://i.ibb.co/FXrLHzR/Screenshot-4.png '>
Tanggapan
Thx bang, sy coba dl
<pre> SELECT a.name as Nama, count(b.name) as Hobi FROM user AS a INNER JOIN hobi AS b ON b.user_id=a.id GROUP BY b.user_id </pre>biar lebih simple berikan alias juga untuk tabel :D
Tanggapan
itu kan nama sama hobi,kalau dbnya apotek gimana?