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

सिद्धांत और सिम्फनी 2 का उपयोग करके कई-से-अनेक संबंधों पर आंतरिक जुड़ाव कैसे काम करता है?

ManyToMany का उपयोग करना जब आप एक डीक्यूएल (सिद्धांत क्वेरी) सिद्धांत बनाते हैं तो 2 संस्थाओं के बीच एक तीसरी तालिका शामिल होती है जिसे आम तौर पर इस प्रकार के संबंध में जंक्शन तालिका कहा जाता है।>

$teamsingroup = $em->getRepository("AppBundle\Model\Entity\Team")
                    ->createQueryBuilder('o')
                    ->innerJoin('o.group', 't')

आप Team में शामिल हो रहे हैं Group . के साथ इकाई innerJoin('o.group') . में इकाई भाग o टीम इकाई और o.group . के लिए उपनाम है Team . में परिभाषित संपत्ति को संदर्भित करता है Group . नाम की इकाई ।

/**
 * @ORM\ManyToMany(targetEntity="Groups", mappedBy="team")
 */
protected $group;

जिसमें एक ManyToMany है इस प्रकार के संबंध सिद्धांत के लिए परिभाषित एनोटेशन पहले आपकी टीम तालिका को जंक्शन तालिका के साथ जोड़ता है और फिर समूह तालिका के साथ आपकी जंक्शन तालिका में शामिल हो जाता है और परिणामी SQL कुछ ऐसा होगा

SELECT t.*
FROM teams t
INNER JOIN junction_table jt ON(t.id = jt.team_id)
INNER JOIN groups g ON(g.id = jt.group_id)
WHERE g.id = @group_id

प्रत्येक समूह के लिए टीम प्राप्त करने के आपके तरीके से संबंधित एक और बात आप createQueryBuilder को छोड़कर अपने कोड को छोटा कर सकते हैं लूप के भीतर भाग, एक बार जब आप टीम की संपत्ति को ArrayCollection . के रूप में परिभाषित कर लेते हैं यानी $this->team = new ArrayCollection(); प्रत्येक समूह वस्तु पर आपको getTeam() पर कॉल करके उस विशेष समूह से जुड़ी टीमों का संग्रह प्राप्त होगा नीचे दिए गए कोड के समान समूह वस्तु पर कार्य करें।

foreach ($groups as $group) {
    $teamsingroup = $group->getTeam();
    echo "</b>".$group->getGroupname()."</b></br>";
    foreach ($teamsingroup as $teamingroup) {
        echo $teamingroup->getTeam()."</br>";
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL क्वेरी के ऑर्डर आउटपुट को कैसे रिवर्स करें

  2. कोडइग्निटर MySQL डेटा को पढ़ने और लिखने के लिए अलग-अलग आईपी कॉन्फ़िगर करता है

  3. उप क्वेरी से एकाधिक परिणामों से कैसे बचें

  4. sql में क्लॉज द्वारा HAVING और ORDER का उपयोग कैसे करें

  5. MySQL रूट पासवर्ड को डिफ़ॉल्ट में कैसे बदलें?