Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

kueri SQL yang kompleks, banyak ke banyak

Sesuatu seperti ini.

Select people.id, people.name, count(interest.id)
from people
left join people_interests on people.id = people_interests.peopleid 
left join interests on people_interests.interestid = interests.interest.id
where interests.id in (select id from interests where interests.peopleid = @inputuserid)
group by people.id, people.name
order by count(interest.id)

Dalam bahasa Inggris (yang mungkin membuatnya lebih jelas atau tidak.)

  • Pilih nama orang dan jumlah minat yang mereka bagikan
  • Dari tabel orang
  • Gabung dengan tabel minat sehingga tabel tersebut
  • Apakah hanya kepentingan orang yang kita coba cocokkan.
  • (kelompokkan menurut orang
  • dan urutkan berdasarkan jumlah minat yang cocok.)

Diperbarui tanpa sub kueri tetapi kurang jelas

Select people.id, people.name, count(interest.id)
from people
left join people_interests on people.id = people_interests.peopleid 
left join interests on people_interests.interestid = interests.interest.id
inner join interest i2 on (interests.id = i2.id and i2.people_id = @inputuserid)
group by people.id, people.name
order by count(interest.id)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan pernyataan IF di MySQL untuk memperbarui atau menyisipkan tanpa Prosedur Tersimpan?

  2. MySql mengacak 10 baris terakhir

  3. Melewati permintaan MySQL melalui Javascript

  4. Nilai datetime salah untuk fungsi str_to_date

  5. OperationalError:(1045, Akses ditolak untuk pengguna 'rajendra'@'localhost' (menggunakan kata sandi:TIDAK))