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

MySQL लेफ्ट जॉइन क्वेरी में डुप्लिकेट कॉलम को हटा दें

इसे दो तरीकों से हल किया जा सकता है:

केवल SQL का उपयोग करना:

एसक्यूएल फिडल:http://www.sqlfiddle.com/#!2 /19d46/14

  SELECT case
       when c.text_choice = (select min(text_choice) from choice c2 where c2.id = q.id) then name_question
       else ""
       end as name_question,

       case
       when c.text_choice = (select min(text_choice) from choice c2 where c2.id = q.id) then text_question
       else ""
       end as  text_question,
       c.text_choice 

FROM question as q LEFT JOIN choice as c  
ON q.id = c.id
order by q.id, c.text_choice;

परिणाम:

Q1  Q1_text C1
C2
C3
Q2  Q2_text C4
C5
C6

PHP का भी उपयोग करना:

आरंभिक रूप से देखने पर इसे PHP के माध्यम से आसानी से पूरा किया जा सकता है और name_question द्वारा आपके परिणामों का आदेश दिया जा सकता है।

$query =    ' SELECT q.name_question, q.text_question, c.text_choice'.
                        ' FROM question as q '.
                        ' LEFT JOIN choice as c ' .
                        ' ON q.id_question = c.id_question '  order by q.name_question;

परिणाम प्रदर्शित करते समय:

$current_nameQuestion = "";    
foreach ($db->loadObjectList() as $obj){

        if($current_nameQuestion==$obj->name_question)
        {
           echo "       ".$obj->text_choice."</br>";
        }
        else
        {
           echo $obj->name_question." ".$obj->text_question." ".$obj->text_choice."</br>";
           $current_nameQuestion = $obj->name_question;
        }       
    }

उपरोक्त PHP कोड, केवल 2 कॉलम मानों को प्रिंट करेगा जब name_question पहले ही आउटपुट नहीं किया गया है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php mysql सर्वर चला गया

  2. SQL समस्या:एक से अनेक संबंध और EAV मॉडल

  3. पीएचपी पेजिनेशन क्लास

  4. आईडी कॉलम से कुंजी मान के साथ MySQL से PHP सरणी जेनरेट करें

  5. mysql प्रश्नों में दूरी की गणना