Php 如果有两列同名,如何在左联接中选择一列?[MySql]
我做了一个Php 如果有两列同名,如何在左联接中选择一列?[MySql],php,mysql,left-join,Php,Mysql,Left Join,我做了一个左连接,从数据库中的两个表中获取值。 查询如下: SELECT * FROM thread LEFT JOIN comments ON thread.id_thread = comments.id_thread WHERE id_type = '1' ORDER BY data DESC, hour DESC 然后我以这种方式输出值: <? while($row = mysqli_fetch_array($query)) { echo '<div class="co
左连接
,从数据库中的两个表中获取值。查询如下:
SELECT *
FROM thread
LEFT JOIN comments ON thread.id_thread = comments.id_thread
WHERE id_type = '1'
ORDER BY data DESC, hour DESC
然后我以这种方式输出值:
<?
while($row = mysqli_fetch_array($query))
{
echo '<div class="col-md-1"></div>';
echo '<div class="col-md-11">';
echo $row['title'] ."<br><br>".$row['content']."<br><br>";
echo $row['content_com'];
echo '<div class="col-md-2 pull-right">'. "date: ".$row['data']."<br>"."author: ".'<a href ="/user.php?id='.$row['username'].'">'.$row['username'].'</a>'.'</div>' ."<br><br>";
echo '<form role="form" action="commit.php" method="post"><div class="col-md-offset-1 col-md-9"><input class="form-control" type="text" name="comm"><input type="hidden" name="thread_id" value="'.$row['id_thread'].'"></div></form> <br><br><hr><br>';
echo '</div>';
}
mysqli_close($connect);
?>
然后在commit.php(表单操作)中:
使用表指定列名并将其命名为别名。
因此,像以前一样为所有列选择*
,现在使用thread.id\u thread
并将其别名为mycl
。这将作为mycl提供,不再有名称冲突。您可以使用“别名”或表名,然后指定要使用的列
SELECT T.*, comments.id_thread AS comment_thread_id
FROM thread T
LEFT JOIN comments
ON thread.id_thread=comments.id_thread
WHERE id_type = '1' ORDER BY data desc, hour desc
请参阅,T
是表名的alis,线程,T.
将从thread
表中选择所有列,comments.id\u thread
将只从表comments
中获取列id,命名为comment\u thread\u id
在使用别名/表名旁边,您也可以使用using()
而不是
上的,以加入表
SELECT T.*, comments.id_thread AS comment_thread_id
FROM thread T
LEFT JOIN comments
USING(id_thread)
WHERE id_type = '1' ORDER BY data desc, hour desc
这是两种方法之间区别的一个很好的解释:两个表都有id\u thread字段,但我想要thread->id\u thread,它会给我注释->id_thread@kraven2g-首先,您不应该使用SELECT*FROM…
。。。您应该指定所需的列。如果两列名称相同,请使用作为
关键字,例如:选择table1.col1,table1.col2…,table2.col1作为col1\u 2…
等等。我仍然需要所有其他列,这就是为什么我选择了SELECT*@kraven2g指定所有其他名称,然后尝试选择*,thread.id\u thread作为mycl
。适用于大多数您乐于接受的发动机。既然您使用的是MySQLi,那么您应该研究
SELECT T.*, comments.id_thread AS comment_thread_id
FROM thread T
LEFT JOIN comments
ON thread.id_thread=comments.id_thread
WHERE id_type = '1' ORDER BY data desc, hour desc
SELECT T.*, comments.id_thread AS comment_thread_id
FROM thread T
LEFT JOIN comments
USING(id_thread)
WHERE id_type = '1' ORDER BY data desc, hour desc