选择distinct table4_id,table3_id和table2_id

don*_*now 3 mysql sql join distinct

我有4张桌子.我使用INNER和RIGHT JOIN加入了他们.我试图选择不同的table4_id,table3_id和table2_id.

这是加入4个表的查询

      <?php 
             $query = mysqli_query($con, 
                "SELECT 
                      table1.table1_id, 
                      table1.firstname, 
                      table1.middlename, 
                      table1.lastname, 
                      table1.extension_name, 
                      table2.table2_id, 
                      table3.table3_id, 
                      table4.table4_id 
                 FROM table1
                 INNER JOIN table2
                      ON table1.table1_id = table2.table2_id
                 RIGHT JOIN table3
                      ON table2.table2_id = table3.table3_id
                RIGHT JOIN table4
                      ON table3.table3_id = table4.table4_id") or die(mysqli_error($con));

       ?>
Run Code Online (Sandbox Code Playgroud)

我获取结果时的代码

          <?php while($row = mysqli_fetch_array($query)): ?>
               <tr>
                    <td><?php echo $row['table4_id'];?></td>
                    <td><?php echo $row['table3_id'];?></td>
                    <td><?php echo $row['table2_id'];?></td>
                    <td><?php echo $row['firstname'] . " " . $row['middlename'] . " " . $row['lastname'] . " " . $row['extension_name'];?></td>
                </tr>
           <?php endwhile; ?>
Run Code Online (Sandbox Code Playgroud)

结果

在此输入图像描述 我想要实现的形象

在此输入图像描述

我猜我的查询不正确

我想SELECT DISTINCT-同样的结果
我想GROUP BY-它的工作原理与table4_id,table3_id和table2_id列,但在"名称"栏下,它仅显示一个记录.它应该显示table2_id的所有名称

Mfu*_*ard 5

您可以尝试使用围绕表内容循环的for循环

$row = mysqli_fetch_array($query));

for($i=0; $row = $result->fetch(); $i++){

           <tr>
                <td><?php echo $row['table4_id'];?></td>

                <td><?php echo $row['table3_id'];?></td>

                <td><?php echo $row['table2_id'];?></td>

                <td><?php echo $row['firstname'] . " " .$row['middlename'] . " " . $row['lastname'] . " " . $row['extension_name'];?></td>
            </tr>
       }
Run Code Online (Sandbox Code Playgroud)