Mysql 选择不同的table4\u id、table3\u id和table2\u id
我有四张桌子。我加入他们使用内部和右连接。我正在尝试选择不同的table4\u id、table3\u id和table2\u id 下面是连接4个表的查询Mysql 选择不同的table4\u id、table3\u id和table2\u id,mysql,sql,join,distinct,Mysql,Sql,Join,Distinct,我有四张桌子。我加入他们使用内部和右连接。我正在尝试选择不同的table4\u id、table3\u id和table2\u id 下面是连接4个表的查询 <?php $query = mysqli_query($con, "SELECT table1.table1_id, table1.firstname,
<?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));
?>
获取结果时进行编码
<?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; ?>
$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>
}
结果
<?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; ?>
$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>
}
我想要实现的形象
我想我的问题不对
我尝试了选择DISTINCT
-相同的结果我尝试了
groupby
——它与table4\u id、table3\u id和table2\u id列一起工作,但在“Name”列下,它只显示一条记录。它应该显示查询中具有table2\u id的所有名称。聚合函数不存在,因此不需要group by
如果您想要不同的值,则必须在选择中添加此子句
"SELECT DISTINCT
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"
您可以尝试使用for循环来循环表格内容
<?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; ?>
$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>
}
$row=mysqli_fetch_数组($query));
对于($i=0;$row=$result->fetch();$i++){
}
您是否尝试过使用分组依据
?尝试使用分组依据表格4\u id、表格3\u id、表格2\u id
为每个组表格4\u id、表格3\u id、表格2\u id
,您要获取哪条记录?右键连接。。。大多数人觉得这些太令人困惑了。为了使代码更易于阅读和维护,请切换到left join!(即“主表连接可选数据”,而不是“可选数据连接主表”。)