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

सिद्धांत क्वेरी भाषा प्रति समूह अधिकतम/नवीनतम पंक्ति प्राप्त करें

आप सिद्धांत के साथ जो प्रश्न करने का प्रयास कर रहे हैं, वह . उप क्वेरी का उपयोग करने के लिए और फिर मुख्य क्वेरी के साथ जुड़ने के लिए सिद्धांत के साथ चीजों को जटिल बनाना। तो नीचे किसी भी समग्र कार्यों के उपयोग के बिना समान परिणाम प्राप्त करने के लिए फिर से लिखा गया SQL संस्करण है:

SELECT 
  a.* 
FROM
  score a 
  LEFT JOIN score b 
    ON a.name = b.name 
    AND a.score < b.score 
WHERE b.score IS NULL 
ORDER BY a.score DESC 

डेमो

उपरोक्त क्वेरी को सिद्धांत या DQL के समकक्ष परिवर्तित करना आसान है, नीचे उपरोक्त SQL का DQL संस्करण है:

SELECT a 
FROM AppBundle\Entity\Score a
    LEFT JOIN AppBundle\Entity\Score b 
    WITH a.name = b.name 
    AND a.score < b.score
WHERE b.score IS NULL
ORDER BY a.score DESC

या क्वेरी बिल्डर के साथ आप कुछ लिख सकते हैं जैसे मैंने सिम्फनी 2.8 के साथ नीचे परीक्षण किया है डेमो स्कीमा

$DM   = $this->get( 'Doctrine' )->getManager();
$repo = $DM->getRepository( 'AppBundle\Entity\Score' );
$results = $repo->createQueryBuilder( 'a' )
                ->select( 'a' )
                ->leftJoin(
                    'AppBundle\Entity\Score',
                    'b',
                    'WITH',
                    'a.name = b.name AND a.score < b.score'
                )
                ->where( 'b.score IS NULL' )
                ->orderBy( 'a.score','DESC' )
                ->getQuery()
                ->getResult();

एक और विचार डेटाबेस में आपकी क्वेरी का उपयोग करके एक दृश्य बनाना होगा और सिम्फनी में एक इकाई बनाएं, दृश्य नाम को टेबल एनोटेशन में रखें और बस अपनी इकाई को कॉल करना शुरू करें, यह आपकी क्वेरी द्वारा लौटाए गए परिणाम देगा लेकिन यह दृष्टिकोण केवल एक अस्थायी सुधार की अनुशंसा नहीं की जाती है ।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Android के लिए JDBC बनाम वेब सेवा

  2. पीएचपी पीडीओ - पंक्तियों की संख्या

  3. दिनांक सीमाओं की तुलना करना

  4. कॉलम से अद्वितीय मानों का चयन करना

  5. विभिन्न डेटाबेस के बीच MySQL InnoDB विदेशी कुंजी