php - 使用php连接两个表
问题描述
我不知道加入,我真的很难理解逻辑。谁能帮帮我吗?
这是我的表
AnnouncementID Subject Header Status
---------------------------------------------------
1 Peter Header 2 Publish
2 2x2 Header 3 Draft
3 Resignation Header 4 Publish
这是另一个表 ReadAnnouncements:
AnnouncementID Username Status
---------------------------------------------
1 User 1 Read
2 User 2 Read
2 User 3 Read
我希望我的结果是
AnnouncementID Username Status Header Subject
---------------------------------------------------------------
1 User 1 Read Peter Header 2
2 User 2 Read 2x2 Header 3
2 User 3 Read 2x2 Header 3
请教我已经尝试了两天了,我真的很困惑。
<?php
$sql=" SELECT a.AnnouncementID,a.Created,r.Username,a.Status,a.Header,a.Body from Announcements a join ReadAnnouncements r using(AnnouncementID) WHERE a.Status = 'Publish'";
$result = mysqli_query( $conn,$sql);
while($rows = mysqli_fetch_array($result)){
$time = date('h:i:s a',strtotime($rows['Created']));
$date = date('Y-m-d',strtotime($rows['Created']));
if($rows['ReadStatus'] == 'Unread'){
echo '
<tr class="'.$rows['Status'].'clickable-row" >
<strong><td class="view-message dont-show"><a href="ViewAnnouncement.php?view_id='.$rows['AnnouncementID'].'" style="text-decoration: none " class="text-dark"><div>'.$rows['Header'].'</div></a></td>
<td class="view-message "><a href="ViewAnnouncement.php?view_id='.$rows['AnnouncementID'].'" style="text-decoration: none" class="text-dark" ><div>'.substr($rows['Body'],0,90).'</div></a></td>
<!--<td class="view-message inbox-small-cells"><i class="fa fa-paperclip"></i></td>-->
<td class="view-message text-right"><a href="ViewAnnouncement.php?view_id='.$rows['AnnouncementID'].'" style="text-decoration: none" class="text-dark"><div><h6>'.$time.''.'<br>'.''.$date.'</h6></div></a></td></strong></tr>
';
}else{
echo '<strong>
<tr class="'.$rows['Status'].'clickable-row" >
<strong><td class="view-message dont-show"><a href="ViewAnnouncement.php?view_id='.$rows['AnnouncementID'].'" style="text-decoration: none " class="text-dark"><div>'.$rows['Header'].'</div></a></td>
<td class="view-message "><a href="ViewAnnouncement.php?view_id='.$rows['AnnouncementID'].'" style="text-decoration: none" class="text-dark" ><div>'.substr($rows['Body'],0,90).'</div></a></td>
<!--<td class="view-message inbox-small-cells"><i class="fa fa-paperclip"></i></td>-->
<td class="view-message text-right"><a href="ViewAnnouncement.php?view_id='.$rows['AnnouncementID'].'" style="text-decoration: none" class="text-dark"><div><h6>'.$time.''.'<br>'.''.$date.'</h6></div></a></td></strong></tr>
</strong>';
}
}
?>
我想从表公告中选择仅发布的所有行,并根据用户名和公告 ID 对它们进行分类(如果它们已读或未读)。
解决方案
连接非常简单,请查看此说明。在您的情况下,您可以执行以下操作:
SELECT A.AnnouncementID, A.Username, R.Status, A.Header, A.Subject FROM Announcements A join ReadAnnouncements R USING(AnnouncementID)
推荐阅读
- laravel - 用户访问路由器laravel(存储和更新)时如何重定向?
- python - Python 3.6 底图安装
- window - 如何使用 robocopy 复制文件夹并将修改日期保留在 windows 服务器中
- c# - Autofac - 在运行时解析参数
- kubernetes - 一个 Kubernetes 仪表板,用于多个选定的命名空间
- java - 以编程方式添加的视图寻呼机不显示
- react-native - React Native“隐藏”屏,多屏合一
- r - ggplot geom_col:从数据中自动定义 y?
- python - 如何更改用户名/电话/电子邮件的一个字段的 LoginSerializer?
- apache-spark - 在 Spark 2.2 中,调用 .repartition(#) 和设置默认分区值有区别吗?