Php 消除MySQL左连接查询中的重复列

Php 消除MySQL左连接查询中的重复列,php,mysql,sql,left-join,Php,Mysql,Sql,Left Join,我有两张桌子: 问题ID\u问题、名称\u问题、文本\u问题 选择id选项,文本选项,id问题 我在php代码中的查询是: $query = ' SELECT q.name_question, q.text_question, c.text_choice'. ' FROM question as q '. ' LEFT JOIN choice as c ' .

我有两张桌子: 问题ID\u问题、名称\u问题、文本\u问题 选择id选项,文本选项,id问题

我在php代码中的查询是:

$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 ' ;
当我检查结果时:

foreach ($db->loadObjectList() as $obj){

    echo $obj->name_question." ".$obj->text_question." ".$obj->text_choice."</br>";

}
$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;
        }       
    }
我想要的是:

Q1 Q1_text C1
           C2
           C3

Q2 Q2_text C4
           C5
那么,在SQL查询中是否有这样做的方法?以及如何以我想要的方式在PHP中显示查询结果


感谢您的帮助。

这可以通过两种方式解决:

仅使用SQL: SQL Fiddle:

结果:

Q1  Q1_text C1
C2
C3
Q2  Q2_text C4
C5
C6
同时使用PHP: 在初始查看时,可以通过PHP轻松完成此操作,并按名称对结果进行排序

$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;
显示结果时:

foreach ($db->loadObjectList() as $obj){

    echo $obj->name_question." ".$obj->text_question." ".$obj->text_choice."</br>";

}
$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列值

实际上,您希望将数据列替换为NULL。通常SQL不用于格式化,但这是可能的。虽然这种性质的问题可以在MySQL中解决,但通常我认为最好在应用程序级别处理数据显示问题——在本例中,使用一个简单的PHP循环。一般来说,这样可以使设计更具灵活性。