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

Django manytomany query perilaku aneh

Sejak Subscription adalah tabel tembus untuk relasi m2m antara Post dan Subscriber , ketika Anda memesan di bidang Subscription model itu sendiri, semua posting muncul sebagai baris individual di set hasil dan itulah mengapa Anda mendapatkan s_count=1 karena setiap postingan dengan pelanggan tertentu adalah unik.

Anda perlu membubuhi keterangan pada Post objek dengan date_subscribed terbaru dari semua subscribers lalu pesan di kolom beranotasi:

posts = Post.objects.annotate(
            s_count=Count('subscribers'),
            s_date_max=Max('subscription__date_subscribed')
        ).order_by('-s_count', '-s_date_max')

PERBARUI untuk pertanyaan berikutnya:

Jika Anda menggunakan count() metode itu akan mengembalikan jumlah Posts . Anda dapat melihat bahwa itu akan berbeda dari jumlah yang Anda dapatkan dari len(queryset.values_list('s_count', 'subscription__date_subscribed')) karena saat ini nilai individual untuk tanggal telah diambil di kumpulan hasil.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara merekam kumpulan catatan berurutan di MySQL

  2. Pilih tanggal dari db saya tanpa detik menggunakan PHP MySql

  3. Kesalahan MySql terjadi dalam semalam - Paket terakhir yang dikirim ke server adalah 0 ms yang lalu

  4. Setel bidang untuk secara otomatis memasukkan cap waktu pada UPDATE?

  5. mysql memperbarui beberapa baris, masing-masing dengan nilainya sendiri, dengan pernyataan CASE