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的所有名称
您可以尝试使用围绕表内容循环的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)
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |