Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Django स्वयं शामिल हों, इस क्वेरी को ORM क्वेरी में कैसे बदलें

अधिक सामान्यीकृत डेटा मॉडल के साथ ऐसा करने में आपके पास आसान समय होगा। इस तरह के दृष्टिकोण का उपयोग करने पर विचार करें:

class NodeGroup(model.Model):
    pass

class NodeHealth(model.Model):
    node_group = models.ForeignKey(NodeGroup, related_name='nodes')
    health_time = models.IntegerField()
    status = models.IntegerField()

तब आप यह कर सकते थे:

from django.db.models import Max, F

nodes = NodeHealth.objects.all().annotate(
    max_health_time=Max('node_group__nodes__health_time')
).filter(health_time=F('max_health_time'))

दुर्भाग्य से उस बिंदु पर, लौटाए गए नोड्स में डुप्लिकेट आधारित होंगे यदि एक से अधिक नोड का health_time के लिए समान मान है . आप एक .distinct('node_group_id') . जोड़ सकते हैं जो इसे साफ कर सकता है, लेकिन मैं 100% सकारात्मक नहीं हूं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. tomcat 6.0.24 अपवाद:com.mysql.jdbc.SQLError लोड नहीं हो सका

  2. PHP और MySQL सबसे छोटी और सबसे बड़ी संभावित तिथि

  3. MySQL डेटाबेस से कनेक्ट करना

  4. SQLAlchemy DELETE त्रुटि आलसी लोड और एक ही रिश्ते के गतिशील संस्करण दोनों होने के कारण होती है

  5. कुप्पी-sqlalchemy mysql-अजगर स्थापित नहीं कर सकता